JUnit规则

在本节中,我们学习和了解JUnit中叫做规则的新功能,它允许非常灵活在测试类重新定义每个测试方法的行为。
为了这个目的,@Rule注解被使用来标出测试类的公共字段。
这些字段类型为MethodRule,这是测试方法如何运行并报告。
多个MethodRules可以应用到一个测试方法。
MethodRule接口有很多的实现,如ErrorCollector在发现了第一个问题之后,也允许继续执行一个测试,ExpectedException 允许在测试规范预期的异常类型和消息,TestName 使得目前的测试名称在测试方法内部可用,以及其他许多。
 

NameRuleTest.java

package com.javacodegeeks.junit;

import static org.junit.Assert.*;

import org.junit.*;
import org.junit.rules.TestName;

public class NameRuleTest {

@Rule
public TestName name = new TestName();

@Test
public void testA() {
System.out.println(name.getMethodName());
assertEquals("testA", name.getMethodName());

}

@Test
public void testB() {
System.out.println(name.getMethodName());
assertEquals("testB", name.getMethodName());
}
}

 

除了那些已经定义的规则,开发人员可以创建自己的自定义规则,并使用来测试自己用例。
我们可以看到,@Rule注解标记的类型是MethodRule的公共字段名,具体而言是TestName类型。 然后,可以在我们的测试中,这名称字段使用和查找,例如测试方法的名称,这种特定情况。
posted @ 2023-01-31 19:30  cnetsa  阅读(35)  评论(0)    收藏  举报