Удобочитаемые тестовые имена в JUnit 4
Как я могу указать удобочитаемые имена тестов (для отображения в IDE и отчетах о тестах) с помощью JUnit 4?
В идеале, путем автоматического преобразования фактического названия теста.
1 ответ
Я полагаю, что "понятные человеку имена" в первую очередь означают тестовые имена с пробелами.
подчеркивания
Мое любимое решение этой проблемы - использовать подчеркивание вместо пробелов. Это единственное решение, которое прекрасно работает вместе с IDE. Например, вы можете перейти с панели выполнения теста на тест одним щелчком мыши.
@Test
public void the_server_accepts_connections_with_password() {
...
}
Посмотрите на FakeSftpServerRuleTest для полного тестового класса, который использует этот стиль.
Тест бегунов
Есть и другие решения, но все они требуют от вас написать собственный Runner.
Вы можете создать Runner, который поддерживает что-то похожее на аннотацию JDnplay Jupiter @DisplayName.
Вы можете создать Runner, который преобразует подчеркивания из имени метода теста в пробелы для отображаемого имени теста.
Проблема с этими решениями заключается в том, что среда IDE больше не может связывать результаты теста с методом теста.
Нестандартные пробелы
Предупреждение: не делай этого!
Просто для полноты. В Unicode есть различные символы пробела, и некоторые из них могут быть частью имен методов в Java. Вы можете написать тестовые имена, используя их. У вас все еще есть надлежащая поддержка IDE. Тем не менее: не делай этого. Читатель кода не осознает этой магии и впадет в отчаяние.