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构造函数。每种形式的优缺点是什么?

第二个版本更简洁,否则它们是相同的。为其他基于JVM的语言添加了允许Rule对方法进行注释的功能。

最新更新