Skip to content

Resolved mismatch stubbings in SendStepTest.java #120

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ARMS2025
Copy link

Description

I analyzed the test doubles (mocks) in the test code of the project. In my analysis of the project, I observed that

In the test testWithEmptyHubotURLThrowsAbortException:

  • The get method for the envVarsMock object:
    i) is stubbed in the setup method with argument "BUILD_URL"
    ii) during test execution the method is actually called with argument "HUBOT_FAIL_ON_ERROR", resulting in a mismatch stubbing

In the test testWithEmptyRoomThrowsAbortException:

  • The get method for the envVarsMock object:
    i) is stubbed in the setup method with argument "HUBOT_URL"
    ii) is also stubbed in the setup method with argument "BUILD_URL"
    iii) during test execution the method is actually called with argument "HUBOT_DEFAULT_ROOM", resulting in a mismatch stubbing
    iv) during test execution the method is actually called with argument "HUBOT_FAIL_ON_ERROR", resulting in another mismatch stubbing

In the tests testErrorMessageSend and testSuccessfulMessageSend:

  • The get method for the envVarsMock object:
    i) is stubbed in the setup method with argument "BUILD_URL"
    ii) during test execution the method is actually called with argument "HUBOT_FAIL_ON_ERROR", resulting in a mismatch stubbing
    iii) during test execution the method is actually called with argument "CHANGE_AUTHOR", resulting in another mismatch stubbing

In the test testFailOnErrorFalseDoesNotThrowsAbortException:

  • The get method for the envVarsMock object:
    i) is stubbed in the setup method with argument "BUILD_URL"
    ii) during test execution the method is actually called with argument "HUBOT_DEFAULT_ROOM", resulting in a mismatch stubbing

In general, a mismatched stubbing occurs when a method is stubbed with specific arguments in a test but later invoked with different arguments in the code. Mockito recommends addressing this type of issue (https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/exceptions/misusing/PotentialStubbingProblem.html).

I propose a solution below to resolve the mismatch stubbing. Happy to modify the pull request based on your feedback.

Submitter checklist

  • Link to JIRA ticket in description, if appropriate. (Not applicable)
  • Change is code complete and matches issue description
  • Appropriate unit or acceptance tests or explanation to why this change has no tests. (Not applicable)
  • Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.

Reviewer checklist

  • Run the changes and verified the change matches the issue description
  • Reviewed the code
  • Verified that the appropriate tests have been written or valid explanation given

@ARMS2025 ARMS2025 requested a review from a team as a code owner May 12, 2025 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant