Junit TestRule аннотирует поля против методов
Предполагая, что у вас есть определенный TestRule (например, TemporaryFolder), вы можете применить правило в тестовом классе одним из следующих способов:
1. Аннотируя метод с помощью @Rule
public MyTestClass{
private TemporaryFolder folder= new TemporaryFolder();
@Rule
public TemporaryFolder getFolder() {
return folder;
}
@Test
...
}
2. Аннотируя поле с помощью @Rule
public MyTestClass{
@Rule
public TemporaryFolder folder= new TemporaryFolder();
@Test
...
}
Кажется, что каждый тестовый пример вызывает конструктор TemporaryFolder в обеих формах. Каковы плюсы / минусы каждой формы?
1 ответ
Второй вариант более лаконичен, в остальном они идентичны. Разрешение методов аннотироваться Rule
был добавлен для других языков на основе JVM.