junit套件测试,分阶段:所有@Before,然后所有@Test,然后所有@After

时间:2010-08-19 08:49:23

标签: testing junit system-testing

我想要一个junit runner来执行所有@Before方法,然后是所有@Test方法,然后是所有@After方法。

这就是我的系统测试的工作方式。运行@Before方法,以设置测试数据和方案。该应用程序已启动。然后在后台运行应用程序的情况下运行@Test方法。那些@Test方法可以更改数据或响应应用程序。然后框架等待应用程序完成。然后,运行@After方法来验证测试结果。

我已经使用了junit注释,断言方法和其他各种各样的位。但我无法弄清楚如何使用junits runners以这种方式执行测试方法。我无法在junit 4.8中创建“计算机”界面的头部或尾部,或者弄清楚如何将规则应用于此。

2 个答案:

答案 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(){}