Skip to content

Resolve 3 mismatch stubbings PathBasedServletAcceptorTest.java #54

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

We are researchers and analyzed the test doubles (mocks) in the test code of the project. In our analysis of the project, we observed that

  • In the test extensionMatchOneInN, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.selectors" and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test extensionPropertyNotSet, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions", "sling.servlet.selectors", and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test selectorOneMatchesOne, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test selectorOneFromNInN, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test selectorZeroInN, the getProperty method, which is previously stubbed, is executed with the argument "sling.servlet.extensions" in the assertAccept method, but the specific argument is not stubbed, leading to a mismatch stubbing.

  • In the test selectorOneInN, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test selectorPropertyNotSet, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions", "sling.servlet.selectors", and "sling.servlet.methods" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test methodNoMatch, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.selectors" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test methodPropertyNotSet, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.selectors" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test testStringStrictIn, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.selectors" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

  • In the test testEmptyExtensionAndSelectorWithEmpty, the getProperty method, which is previously stubbed, is executed with the argument "sling.servlet.methods" in the assertAccept method, but the specific argument is not stubbed, leading to a mismatch stubbing.

  • In the test testEmptyExtensionSpecificSelector, the getProperty method, which is previously stubbed, is executed with the argument "sling.servlet.methods" in the assertAccept method, but the specific argument is not stubbed, leading to a mismatch stubbing.

  • In the test testEmptySelectorSpecificExtension, the getProperty method, which is previously stubbed, is executed with the argument "sling.servlet.methods" in the assertAccept method, but the specific argument is not stubbed, leading to a mismatch stubbing.

  • In the test testEmptyMethodException, the getProperty method, which is previously stubbed, is executed with arguments "sling.servlet.extensions" and "sling.servlet.selectors" in the assertAccept method, but these specific arguments are not stubbed, leading to mismatch stubbings.

In this pull request, we propose a solution to resolve the mismatch stubbing. This solution has the lowest cognitive complexity (https://www.npmjs.com/package/@genese/complexity#7-cognitive-complexity)
compared to alternative solutions. If preferred, we can submit a pull request with alternative solutions.

Mismatched stubbing occurs when a mocked method is stubbed with specific arguments in a test but later invoked with different arguments in the code, potentially causing unexpected behavior. Mockito recommends addressing these issues, (https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/exceptions/misusing/PotentialStubbingProblem.html).

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