美文网首页Java 杂谈Java学习笔记程序员
【JAVA UT】14、设置全局条件--ClassRule

【JAVA UT】14、设置全局条件--ClassRule

作者: 码术张 | 来源:发表于2018-04-08 21:40 被阅读64次

前面一节,介绍了Rule。
这节将介绍ClassRule。
它们既相同,又有不同。
ClassRule也是一种注解,用于设置测试时的一些条件。
既可以注解字段,也可以注解方法。
我推荐,测试方法只用@Test注解,不使用其他注解。
这也是对SRP原则的一种应用。
下面,说明如何使用ClassRule来注解一个字段。

一、如何使用ClassRule来注解一个字段

举例如下:

public class ClassRuleTest {
  @ClassRule
  public  static Timeout timeout = Timeout.millis(3000);

  @Test
  public void should_timeout1() throws InterruptedException {
    System.out.println("Hi...");
    Thread.sleep(2000);
  }

  @Test
  public void should_timeout2() throws InterruptedException {
    System.out.println("Hello...");
    Thread.sleep(2000);
  }

}
  1. 字段声明为public static
    这点与Rule不同。
  2. 字段类型为TestRule的子类型。
    这点与Rule相同。
    上节说明的8种类型,皆可使用。
  3. ClassRule注解的语句,只执行一次。
    这点与Rule不同。
    Rule注解的语句,在每个测试方法运行时,都运行一次。
    上面例子,如果是Rule注解,则表示每一个测试方法的运行时间,不能超过3000ms。
    使用ClassRule注解,所表达的意思是,这一测试类所有测试方法的运行时间,不能超过3000ms。
    运行结果如下:


    result.png
二、注意

ClassRule注解,所对应的语句,最先执行,或,最后执行。
也就是说,比BeforeClass更早,或,比BeforeAfter更晚。

相关文章

网友评论

  • 演讲与写作:重要事情说三遍:赶紧写新文章!赶紧写新文章!赶紧写新文章!因为我没赞可点了!
    码术张:@陈权_高级顾问 😂
  • 丁若木:天书
  • 覃桃子:文科生表示看不懂
  • 演讲与写作:《道德经》云:鸡犬之声相闻,老死不相往来。
    陈权说:咱们地隔千里,每天相互串门!从未互怼,只有互赞和好评。
  • 谢小语:这种内容对于我这种人来说,就是有字天书:joy:
    码术张:@谢小语 可以教你啊,哈哈

本文标题:【JAVA UT】14、设置全局条件--ClassRule

本文链接:https://www.haomeiwen.com/subject/yonphftx.html