-1

文档中:

public class SimpleExpectedExceptionTest {
     @Rule
     public ExpectedException thrown= ExpectedException.none();

     @Test
     public void throwsNothing() {
         // no exception expected, none thrown: passes.
     }

     @Test
     public void throwsExceptionWithSpecificType() {
         thrown.expect(NullPointerException.class);
         throw new NullPointerException();
     }
 }

已验证。但是如果测试以不同的顺序运行呢?@Rule 注释是否告诉 JUnit 在每次测试后重置其状态?

4

2 回答 2

2

是的,为每个运行的单个测试重置规则。

JUnit 的关键之一是测试从不依赖于顺序

于 2015-01-09T17:12:40.467 回答
2

JUnit 测试是独立运行的。对于每个单独的测试,(默认)测试运行器将创建一个测试类的新实例,并且只调用一个测试方法(以及@Beforeand@After方法)。因此,除非您创建一些受顺序影响的静态(或外部)依赖项,否则测试执行的顺序对结果没有影响。

于 2015-01-09T17:13:20.630 回答