Junit - 每次测试结束时的方法

时间:2017-01-04 19:58:30

标签: java junit

我得到了一个方法,我会在每次测试结束时调用它来重置流位置。

Test{
[....]
reset();
}

有没有优雅的方法来避免这种重复?

6 个答案:

答案 0 :(得分:4)

尝试使用JUnit的@After annotaton。 来源示例:

 public class Example {
    File output;
    @Before public void createOutputFile() {
          output= new File(...);
    }
    @Test public void something() {
          ...
    }
    @After public void deleteOutputFile() {
          output.delete();
    }
 }

答案 1 :(得分:1)

其他答案建议对公共方法(最好使用名称@After)进行teardown注释,这在技术上是正确的并且是对您的问题的良好答案。

但是,单元测试的基本属性是它们需要快速且彼此独立。

因此,更好的方法是在每次测试时使用流的新模拟。最好通过使用像Mockito,JMock或类似的模拟框架来完成。

答案 2 :(得分:0)

是的,使用@After注释创建新方法。

答案 3 :(得分:0)

您应该使用@After注释 - 表示在每个方法运行结束时需要完成某些操作。

答案 4 :(得分:0)

使用@After注释。

@Test 
public void testSomething() {
   // test goes here
}

@After 
public void doSomethingAfterTest() {
   // reset
}

答案 5 :(得分:0)

正如其他人所指出的,有@s:BeforeAfter。具有这些注释的类实例方法将在每个测试用例之前/之后运行。

还有BeforeClassAfterClass,我没有看到任何人指出。这些@s可以放在你的类的静态方法中,这些方法将在你的类中所有的测试完成之前和之后执行。在某些情况下它很方便。