Use Descriptive Names!

  • Express best practices of unit testing.

Here is our unit test again:

@Test
void length() {
  IndexedList<Integer> numbers = new ArrayIndexedList<>(5, 10);
  assertEquals(5, numbers.length());
}

I prefer to rename the test so that it better reflects what is being tested.

@Test
void testLengthAfterConstruction() {
  IndexedList<Integer> numbers = new ArrayIndexedList<>(5, 10);
  assertEquals(5, numbers.length());
}

We can optionally use the @DisplayName annotation to provide a more elaborate description.

@Test
@DisplayName("length() returns the correct size after IndexedList is instantiated.")
void testLengthAfterConstruction() {
  IndexedList<Integer> numbers = new ArrayIndexedList<>(5, 10);
  assertEquals(5, numbers.length());
}

When you run the test, you must see the following in IntelliJ

You are not required to use @DisplayName annotations. However, your unit tests must be named descriptively. Never, ever, name them generically as test1, test2, etc.