Java Test - Junit @Test @Before @After 测试函数的执行次序

回到顶部(go to top)

@BeforeClass @Before @AfterClass @After @Test“之间”的执行次序问题

一个Junit 的测试类,总运行次序为:

1
2
3
4
5
-> @BeforeClass
-> {
        Test 函数的特定运行次序,每个@Test都要执行(@Before -> @Test -> @After
   }
-> @AfterClass   

 

@Before 有点类似于初始化函数,它会对每个@Test测试方法在开始之前都运行一遍。
@BeforeClass 是对于整个当前测试类的初始化,它会在第一个测试函数之前,对整个类都运行且只运行一次。因此,它只修饰static函数。
@After 有些类似于空间释放或者垃圾回收的函数作用,它会对每个@Test函数在结束测试之后运行一遍
@AfterClass 也是针对于整个类的,在所有测试函数结束后,对整个类运行一次。因此,它只修饰static函数。

 

回到顶部(go to top)

@Test函数“之间”的执行次序问题

  • test函数的默认顺序是按照方法名的hashcode()值的排序来决定的,如果hashcode计算值相同,就按照字典序排列。由于hashcode的生成与操作系统相关,所以在不同的操作系统可能会出现不一样的执行次序。
  • 但是Junit对于执行次序的参量提前设置的还有按照方法名称的字典序排列执行,不过这种方法就要在书写名称时要注意一下命名规则了。
  • 还有一个是按照JVM返回的方法名的顺序来执行,每次执行的顺序可能会有所不同

对于Test函数执行顺序的设置可以通过在类名前通过@FixMethodOrder(value)来设置,其中MethodSorters.DEFAULT是默认hashcode顺序,MethodSorters.NAME_ASCENDING是按照字典顺序,MethodSorters.JVM是按照JVM返回次序执行。

 

回到顶部(go to top)

参考

Junit:@Test @Before @After 测试函数的执行次序

作者:

链接:https://blog.csdn.net/qq_42901761/article/details/93473068

posted on   frank_cui  阅读(814)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

levels of contents
点击右上角即可分享
微信分享提示