Skip to content

Fix flaky tests across multiple classes#457

Open
nikunjagarwal321 wants to merge 2 commits intointuit:developfrom
nikunjagarwal321:fix-flaky-tests
Open

Fix flaky tests across multiple classes#457
nikunjagarwal321 wants to merge 2 commits intointuit:developfrom
nikunjagarwal321:fix-flaky-tests

Conversation

@nikunjagarwal321
Copy link

@nikunjagarwal321 nikunjagarwal321 commented Oct 23, 2024

Description

Fix for 5 flaky tests which were found in multiple classes. The tests are as follows:

  • com.intuit.wasabi.analyticsobjects.statistics.EstimateTest#testBuilder
  • com.intuit.wasabi.analyticsobjects.EventTest#testHashCode
  • com.intuit.wasabi.authenticationobjects.LoginTokenTest#testAssignmentFromOther
  • com.intuit.wasabi.authenticationobjects.LoginCredentialsTest#testHashCodeAndEquals
  • com.intuit.wasabi.experimentobjects.PageExperimentTest#testHashCode

Steps to reproduce

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}

Failure

Screenshot 2024-10-22 at 8 10 07 PM

Reason for failure

The flaky nature of the test case is due to the HashCodeBuilder.reflectionHashCode() function. The function internally uses getDeclaredFields() method which does not maintain the order in which the fields are fetched.

Expected Behaviour

The hashCode() method should return same value for same objects irrespective of the fields order.

Actual Behaviour

The test is failing since it is returning different hashcode values

Solution

In order to fix this, we are now defining a fixed order in which the fields get appended in hashCode() method.

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