在JUnit 4.10中,除了@Before、@After这些标注可以在case运行前后分别执行之外,还有一种方式对于监控case运行状态更为精确——TestWatcher,看下面的例子:
父类:
package cskgnt.test;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.rules.TestName;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
public abstract class Father {
protected String caseIdentifier = "";
protected abstract void sonAfter();
@Rule
public TestName name = new TestName();
@BeforeClass
public static void fatherBeforeClass() {
System.out.println("Father: beforeClass");
}
@AfterClass
public static void fatherAfterClass() {
System.out.println("Father: afterClass");
}
@Before
public void fatherBefore() {
System.out.println("Father: before");
}
@After
public void fatherAfter() {
System.out.println

本文介绍了如何在JUnit 4.10中利用TestWatcher更精确地监控测试用例的运行状态。通过创建一个基类Father,定义TestName对象记录用例名称,并实现TestWatcher的四个关键方法:starting、succeeded、failed、finished,以控制在用例执行的不同阶段执行特定操作。Father类还包含一个抽象方法sonAfter,用于在用例完成后根据执行结果进行不同处理,避免了@After注解的限制。
最低0.47元/天 解锁文章

151

被折叠的 条评论
为什么被折叠?



