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.

Другие вопросы по тегам