解释JUnit中@BeforeClass和@AfterClass标注的方法必须是static的,而在TestNg不必
2024-09-05 05:36:50
在JUnit中@BeforeClass和@AfterClass标注的方法必须是static的;但是在TestNg中却没有这样的限制,这是为什么呢。
其实和他们两的运行机制有关。
在junit中:
每运行一个@Test方法,就会为该测试类新建一个新的实例。(所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。)
有没有发现这有助于提高测试方法之间的独立性,因为每个@Test执行的时候,都新建了一个实例,这样的话,可以避免测试方法之间重用各个@Test方法里面的变量值。
举例:
测试结果:
而在TestNg中,@BeforeClass和@AfterClass方法就没严格要求要是static。
因为运行testNg的时候,对一个类只会实例化一次。
举例:
结果:
最新文章
- JavaScript基本数据类型(较易混淆的几个概念)
- BOM和DOM
- HTML回顾
- [C#高级编程]基础知识摘要一
- Java用通配符 获得泛型的协变和逆变
- BZOJ 1093 最大半连通子图
- Iptables 防火墙开放常见的22,53,80端口
- scala学习笔记1
- MPIO配置
- jQuery Mobile 控制 select 的显示隐藏 display none
- 实现怎样支持Android重力感应器Sensor编程
- Eclipse 主题
- 《java入门第一季》之面向对象(包概述)
- ArcPy 重命名拷贝删除图层
- RuntimeException和Exception区别
- Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh
- #pragma常用预处理指令
- Codeforces828 D. High Load
- 关于mysql的压测sysbench
- xrdp完美实现Windows远程访问Ubuntu 16.04