我想要一个junit runner来执行所有@Before方法,然后是所有@Test方法,然后是所有@After方法。
这就是我的系统测试的工作方式。运行@Before方法,以设置测试数据和方案。该应用程序已启动。然后在后台运行应用程序的情况下运行@Test方法。那些@Test方法可以更改数据或响应应用程序。然后框架等待应用程序完成。然后,运行@After方法来验证测试结果。
我已经使用了junit注释,断言方法和其他各种各样的位。但我无法弄清楚如何使用junits runners以这种方式执行测试方法。我无法在junit 4.8中创建“计算机”界面的头部或尾部,或者弄清楚如何将规则应用于此。
答案 0 :(得分:1)
这不是JUnit所做的。 JUnit的设计理念强调独立单元测试。因此,它不是系统测试的自然框架。你想做的事情非常适合TestNG(作为设计目标试图跨越单位和系统测试)。
在JUnit中,在每个测试之前和之后运行@Before和@After。你可以使用套件将这类东西塞进JUnit,套件引用所有测试并负责所有设置和拆卸,因此Suite的@BeforeClass和@AfterClass方法在套件前后运行,如果你组织它正确的可能是你的所有系统测试。
当代码使用JUnit方法变大时,代码中存在很多组织挑战,所以如果这是您想要做的大部分内容,我建议您考虑和替代框架。
答案 1 :(得分:0)
我认为你可以通过只制作一个实际的测试方法来解决这个问题,只是调用是你的实际测试,你没有声明为ssuch。
有点像:
@Before
public void beforeTest(){}
@After
public void afterTest(){}
@Test
public void test(){
test1();
test2();
test3();
}
public void test1(){}
public void test2(){}
public void test3(){}