我有一个不是常规测试方法的方法。这是一种清理方法。我想在一些方法之后运行它(一些方法不是测试方法,但是从一些测试方法调用)。
如何使用JUnit4做到这一点?
PS:After和AfterClass不是一个选择。我想在“一些”非测试方法之后运行一个方法(在测试方法中调用一些方法)。
答案 0 :(得分:0)
你试过@ AfterClass
和@ After
,@Before
,@BeforeClass
?
对于@ AfterClass
的情况,您的方法应该是静态的。
在这些情况下,您的方法将在所有测试之前启动一次。
检查此链接。 junit-beforeclass-and-afterclass-behavior-in-case-of-multiple-test-cases
答案 1 :(得分:0)
如果您使用Spring,则需要手动或通过AOP调用这些方法。
答案 2 :(得分:0)
你可以使用TestWatcher来听取测试结束的时间,&检查测试名称以查看是否应该运行您的代码。 E.g:
@Rule
public TestRule runFooSomtimes = new TestWatcher() {
public void foo() {
//do stuff here
}
List<String> methodsToCheck = new ArrayList<String>() {{
add("testMethodOne");
}}
@Override
protected void finished(Description description) {
if(methodsToCheck.contains(description.getMethodName())) {
foo();
}
}
};
(原谅任何错误,此刻远离IDE,但应该提出一个想法。)