Skip to content

Fix Flaky Tests#456

Open
Sitara-a wants to merge 2 commits intointuit:developfrom
Sitara-a:flaky-test-fix
Open

Fix Flaky Tests#456
Sitara-a wants to merge 2 commits intointuit:developfrom
Sitara-a:flaky-test-fix

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