在JUnit中@BeforeClass和@AfterClass标注的方法必须是static的;但是在TestNg中却没有这样的限制,这是为什么呢。

其实和他们两的运行机制有关。

在junit中:

每运行一个@Test方法,就会为该测试类新建一个新的实例。(所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。)

有没有发现这有助于提高测试方法之间的独立性,因为每个@Test执行的时候,都新建了一个实例,这样的话,可以避免测试方法之间重用各个@Test方法里面的变量值。

举例:

测试结果:

而在TestNg中,@BeforeClass和@AfterClass方法就没严格要求要是static。

因为运行testNg的时候,对一个类只会实例化一次。

举例:

结果:

最新文章

  1. JavaScript基本数据类型(较易混淆的几个概念)
  2. BOM和DOM
  3. HTML回顾
  4. [C#高级编程]基础知识摘要一
  5. Java用通配符 获得泛型的协变和逆变
  6. BZOJ 1093 最大半连通子图
  7. Iptables 防火墙开放常见的22,53,80端口
  8. scala学习笔记1
  9. MPIO配置
  10. jQuery Mobile 控制 select 的显示隐藏 display none
  11. 实现怎样支持Android重力感应器Sensor编程
  12. Eclipse 主题
  13. 《java入门第一季》之面向对象(包概述)
  14. ArcPy 重命名拷贝删除图层
  15. RuntimeException和Exception区别
  16. Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh
  17. #pragma常用预处理指令
  18. Codeforces828 D. High Load
  19. 关于mysql的压测sysbench
  20. xrdp完美实现Windows远程访问Ubuntu 16.04

热门文章

  1. VUE 实现监听滚动事件,实现数据懒加载
  2. Vue STOP&SELF方法使用
  3. npm查看本地包版本号和远程包的版本号
  4. python做中学(九)定时器函数的用法
  5. 纯手打AJAX,还有一个对象转查询字符串的小方法obj=>url
  6. 计算机组成原理——cache高速缓存存储器
  7. 帝国cms提高网站网页打开速度的手段
  8. JDBC连接mysql的url的写法和常见属性
  9. C#操作SQLite数据库增、删、改、查 欢迎转载
  10. Sublime设置格式化代码快捷键ctrl+shift+r