可以通过@Disabled注释,禁用整个测试类或单个测试方法。
这个@Disabled注解代替了Junit4中的@Ignore注解,功能相同。
其中每个方法的作用代码中的注释写的已经非常清楚了
,就不再赘述了.
大家最好将代码自己测试一遍,可以加深理解与记忆! 案例代码:
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Disabled
class DisabledClassDemo {
//因为在类上注释了@Disabled,所以类中的所有方法都被禁止执行
@Test
void testDisable(){
assertTrue(true);
}
@Test
void testDisable2(){
assertTrue(true);
}
}
class DisabledTestsDemo {
//此方法被禁止执行,并在控制台打印默认消息“void junit5_test.DisabledTestsDemo.testWillBeSkipped1() is @Disabled”字样!
@Disabled
@Test
void testWillBeSkipped1() {
}
//此方法被禁止执行,并在控制台打印自定义消息“testWillBeSkipped ware disabled!”字样!
@Disabled(value = "testWillBeSkipped ware disabled!")
@Test
void testWillBeSkipped2() {
}
//此方法正常执行
@Test
void testWillBeExecuted() {
}
}
1.@Disabled注解源码:
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@API(
status = Status.STABLE,
since = "5.0"
)
public @interface Disabled {
String value() default "";
}
从源码中可以发现:
在这里对比一下Junit4的@Ignore和Junit5的@Disabled两个注解吧: @Ignore的源码
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Ignore {
String value() default "";
}
从源码层面来看,并没有任何本质的区别,Junit5用@Disabled代替Junit4中@Ignore只是为了更加符合该注解作用的”不能执行此测试方法“的语义。
如果转载此博文,请附上本文链接,谢谢合作~ :https://blog.csdn.net/csdn___lyy
如果感觉这篇文章对您有所帮助,请点击一下“喜欢”或者“关注”博主,您的喜欢和关注将是我前进的最大动力!
refer: 官网