JUnit的方法是在运行时执行此操作org.junit.Assume
。
@Before
public void beforeMethod() {
org.junit.Assume.assumeTrue(someCondition());
// rest of setup.
}
你可以在@Before
方法中或在测试本身中执行此操作,但不能在@After
方法中执行。如果你在测试本身中执行此操作,则你的@Before
方法将运行。你也可以在内部执行此操作@BeforeClass
以防止类初始化。
假设失败会导致测试被忽略。
编辑:要与junit-ext
的@RunIf
注释进行比较,其示例代码如下所示:
@Test
public void calculateTotalSalary() {
assumeThat(Database.connect(), is(notNull()));
//test code below.
}
更不用说以Database.connect()这种方式从方法中捕获和使用连接要容易得多。