1

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

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

我已经使用了 junit 注释、断言方法和其他各种位。但我就是想不通如何使用junits runners以这种方式执行测试方法。我无法在 junit 4.8 中制作“计算机”界面的正面或反面,或者弄清楚如何将规则应用于此。

4

2 回答 2

1

这不是 JUnit 所做的。JUnit 的设计理念强调独立的单元测试。因此,它不是系统测试的自然框架。您想做的事情非常适合 TestNG(作为设计目标,它试图跨越单元测试和系统测试)。

在 JUnit 中,@Before 和 @After 在每次测试之前和之后运行。您可以使用套件将这种东西硬塞到 JUnit 中,该套件引用您的所有测试并负责所有设置和拆卸,因此套件的 @BeforeClass 和 @AfterClass 方法在套件之前和之后运行,如果您组织它正确的可能是您的所有系统测试。

当使用 JUnit 方法变大时,代码中存在许多组织挑战,因此如果这是您想要做的大部分工作,我建议您考虑替代框架。

于 2010-08-20T02:41:21.483 回答
0

我认为你可以通过只制作一种实际的测试方法来解决这个问题,只是调用是你的实际测试,你没有这样声明。

有点像:

@Before
public void beforeTest(){}

@After
public void afterTest(){}

@Test
public void test(){
    test1();
    test2();
    test3();
}

public void test1(){}

public void test2(){}

public void test3(){}
于 2014-03-13T14:30:59.423 回答