Да, утверждение в методе tearDown - плохая идея.Этот метод существует, согласно документации JUnit, для
Срывает устройство, например, закрывает сетевое соединение.Этот метод вызывается после выполнения теста.
Я думаю, что сохранение ваших ожидаемых и фактических значений в классе теста в целом является плохой идеей.Эти переменные зависят от тестов, поэтому сохраните их внутри тестового примера и сделайте свое утверждение в тестовом примере.Например:
public class FooTest {
@Test
public void testFoo() {
Object expected = // ...
Object actual = // ...
assertThat(actual, is(equalsTo(expected)));
}
}
Кроме того, я вижу в вашем коде, что все тесты имеют одинаковое ожидаемое значение.Было бы неплохо изменить ваши тесты, чтобы возвращаемые значения всегда были разными.Постоянно проверяя только одно ожидаемое значение, убедитесь, что код работает для этого ожидаемого результата.Попробуйте еще немного, возможно, совсем по-другому, и попробуйте проверить некоторые угловые случаи.