是否可以指定在JUnit中运行哪个Before方法,如果是,如何?

时间:2016-10-09 17:38:31

标签: junit junit4

我有一个测试套件,可以在同一个类中测试两个不同的东西。我有一个before方法初始化一些字段供测试方法使用。但是,我有一组使用第一组字段的测试方法,另一组使用第二组但不是第一组。我知道可以将之前的操作拆分为不同的方法,但是也可以在每次测试之前指定哪一个运行?

具体例子:

ssis_monitor

这是一个简单的表示,但我有更多的测试使用其中任何一个。

2 个答案:

答案 0 :(得分:2)

您在问题中陈述的所有内容都指向将您的测试分成两个单独的类。我猜你所拥有的两个组正在测试代码的不同特性,甚至可能在测试名称中有一些共性。将需要before1的所有测试纳入测试类,并将需要before2的所有测试纳入另一个测试类。您可以根据您正在测试的行为分组命名这些新测试类。

例如,如果一半测试用于成功方案,一半用于测试失败方案,则将这些测试放入类似FooSucceedsTest的类中,将失败放入FooFailsTest

答案 1 :(得分:1)

@Before执行的顺序无法保证,因为@Test执行顺序无法保证。

解决方案是在@Test本身进行测试依赖的任何设置,并在测试执行之前使用@Before进行常规设置。