jUnit中每个@Test都有不同的拆解

时间:2011-07-26 12:56:07

标签: java junit junit4

有没有办法在jUnit中为每个@Test定义一个不同的拆解?

3 个答案:

答案 0 :(得分:36)

使用@After注释指示每@Test后运行的方法。

这样的全套注释是:

  • @BeforeClass - 在所有@Tests运行之前
  • @Before - 在每个@Test运行之前
  • @After - 每次@Test运行后
  • @AfterClass - 运行@Tests之后

我刚才意识到我可能没有理解这个问题。如果您询问如何将特定的拆解方法与特定的@Test方法相关联,则无需注释:只需在最终的测试方法结束时调用它:

@Test
public void someTest() {
    try {
        // test something
    } finally {
        someParticularTearDown();
    }
}

答案 1 :(得分:5)

将测试方法组合在同一个类中的重点是他们可以共享内容,包括具有相同的设置和拆卸。所以,是的,您可以为每个测试定义单独的拆卸,但是您可以通过将@Test方法放在不同的类中来实现。

一旦开始使用单独的拆解方法,您希望将测试组合在同一类中的原因并不明显。因此,您可以灵活地管理如何在类中对测试进行分组来管理这种情况。

答案 2 :(得分:1)

在JUnit中没有简单的方法可以做到这一点。使用TestNG,您可以将您的方法分组,这样您就可以定义特定的@ BeforeMethod / @ AfterMethod,只能在某些组中运行。