我得到了一个方法,我会在每次测试结束时调用它来重置流位置。
Test{
[....]
reset();
}
有没有优雅的方法来避免这种重复?
答案 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:Before和After。具有这些注释的类实例方法将在每个测试用例之前/之后运行。
还有BeforeClass和AfterClass,我没有看到任何人指出。这些@s可以放在你的类的静态方法中,这些方法将在你的类中所有的测试完成之前和之后执行。在某些情况下它很方便。