Skip to content
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

Fix Flaky Tests #456

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open

Fix Flaky Tests #456

wants to merge 2 commits into from

Conversation

Sitara-a
Copy link

@Sitara-a Sitara-a commented Oct 15, 2024

Description

Identified and fixed two flaky tests:

  1. com.intuit.wasabi.authorizationobjects.UserRoleTest.testAssignmentFromOther
  2. com.intuit.wasabi.authenticationobjects.LoginCredentialsTest.testHashCodeAndEquals

Steps to reproduce

Run the test multiple times. The current hashCode() logic in both classes used the HashCodeBuilder.reflectionHashCode() function. The function internally uses getDeclaredFields() method which does not maintain the order in which the fields are fetched.

Instead, a HashCodeBuilder was manually created and fields were appended in a fixed order to avoid any test failures due to field order.

This was identified by running NonDex.
The flaky tests can be found when running the following command:
mvn edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest={test}

Expected Behaviour

The hash code for an object should not depend on the order of fields in the class.

Actual Behaviour

The tests were failing since the hash code function was dependent on the order of fields returned by the HashCodeBuilder.reflectionHashCode() method which can change any time.

Solution

An updated hashCode() method which does not depend on the order of fields was pushed.

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