Resolved mismatch stubbings in SendStepTest.java #120
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
:get
method for theenvVarsMock
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 stubbingIn the test
testWithEmptyRoomThrowsAbortException
:get
method for theenvVarsMock
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 stubbingiv) during test execution the method is actually called with argument
"HUBOT_FAIL_ON_ERROR"
, resulting in another mismatch stubbingIn the tests
testErrorMessageSend
andtestSuccessfulMessageSend
:get
method for theenvVarsMock
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 stubbingiii) during test execution the method is actually called with argument
"CHANGE_AUTHOR"
, resulting in another mismatch stubbingIn the test
testFailOnErrorFalseDoesNotThrowsAbortException
:get
method for theenvVarsMock
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 stubbingIn 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
Reviewer checklist