Junit Jmock测试:多个@Before用于测试

时间:2014-07-08 15:50:46

标签: java junit jmock

我不确定是否可以这样做,但我需要根据测试调用不同的@Before方法。是否有可能为它做一些解析?

@Before
performBeforeOne();

@Before
performBeforeTwo();

@Test
callBeforeOneAndExecuteTestOne();

@Test
callBeforeTwoAndExecuteTestTwo();

或者我应该创建几种方法并从每次测试中手动调用它们?

2 个答案:

答案 0 :(得分:1)

不,每个生命周期注释只能有一个方法。创建一个复合方法,如果它们太大而无法组合,则会调用其他方法。

答案 1 :(得分:0)

我认为实现这一目标(最清晰)的最佳方法是重构您的测试:

@Before
public void performBeforeForAll() {}

@Test
testOne() {
    testOneBefore();
   //.. test execution
}

@Test
testTwo() {
   testTwoBefore();
   //.. test execution
}

private void testOneBefore() {}

private void testTwoBefore() {}

这样,您可以在运行之前准确了解每个测试的设置。您可能会发现某些测试共享相同的设置代码,您可以在其中使用私有方法来防止重复。