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

Dan*_*iel 18 java junit junit4

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

Boh*_*ian 38

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

像这样的全套注释是:

  • @BeforeClass- 在所有人@Tests都跑之前
  • @Before- 每次@Test运行之前
  • @After- 每次@Test运行后
  • @AfterClass- 毕竟@Tests运行

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

@Test
public void someTest() {
    try {
        // test something
    } finally {
        someParticularTearDown();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 使用try-finally进行拆卸有一个缺点; 如果正常的junit设置采用屏幕截图或记录应用程序状态,那么直到运行`finally`代码才会发生这种情况,即在发生故障时它不会捕获应用程序的状态. (3认同)

Nat*_*hes 6

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

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