我不确定是否可以这样做,但我需要根据测试调用不同的@Before方法。是否有可能为它做一些解析?
@Before
performBeforeOne();
@Before
performBeforeTwo();
@Test
callBeforeOneAndExecuteTestOne();
@Test
callBeforeTwoAndExecuteTestTwo();
或者我应该创建几种方法并从每次测试中手动调用它们?
答案 0 :(得分:1)
不,每个生命周期注释只能有一个方法。创建一个复合方法,如果它们太大而无法组合,则会调用其他方法。
答案 1 :(得分:0)
我认为实现这一目标(最清晰)的最佳方法是重构您的测试:
@Before
public void performBeforeForAll() {}
@Test
testOne() {
testOneBefore();
//.. test execution
}
@Test
testTwo() {
testTwoBefore();
//.. test execution
}
private void testOneBefore() {}
private void testTwoBefore() {}
这样,您可以在运行之前准确了解每个测试的设置。您可能会发现某些测试共享相同的设置代码,您可以在其中使用私有方法来防止重复。