我有一个测试套件,可以在同一个类中测试两个不同的东西。我有一个before方法初始化一些字段供测试方法使用。但是,我有一组使用第一组字段的测试方法,另一组使用第二组但不是第一组。我知道可以将之前的操作拆分为不同的方法,但是也可以在每次测试之前指定哪一个运行?
具体例子:
ssis_monitor
这是一个简单的表示,但我有更多的测试使用其中任何一个。
答案 0 :(得分:2)
您在问题中陈述的所有内容都指向将您的测试分成两个单独的类。我猜你所拥有的两个组正在测试代码的不同特性,甚至可能在测试名称中有一些共性。将需要before1
的所有测试纳入测试类,并将需要before2
的所有测试纳入另一个测试类。您可以根据您正在测试的行为分组命名这些新测试类。
例如,如果一半测试用于成功方案,一半用于测试失败方案,则将这些测试放入类似FooSucceedsTest
的类中,将失败放入FooFailsTest
。
答案 1 :(得分:1)
@Before
执行的顺序无法保证,因为@Test
执行顺序无法保证。
解决方案是在@Test
本身进行测试依赖的任何设置,并在测试执行之前使用@Before
进行常规设置。