password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
在JUnit4中,测试方法和生命周期方法的默认执行顺序如下:
- @BeforeClass 注解的静态方法,在所有测试方法执行前执行一次,通常用于执行全局初始化。
- @Before 注解的非静态方法,在每个测试方法执行前执行。
- 测试方法,按字母顺序执行。
- @After 注解的非静态方法,在每个测试方法执行后执行。
- @AfterClass 注解的静态方法,所有测试方法执行完成后只执行一次,通常用于全局清理。
例如:
执行顺序为:
- setUpBeforeClass
- setUp
- test1
- tearDown
- setUp
- test2
- tearDown
- tearDownAfterClass
所以@BeforeClass和@AfterClass可以实现跨测试用例的初始化和清理;@Before和@After用来处理每个用例的前置条件设置和资源释放。
在JUnit中,如果一个测试类中有多个测试方法默认情况下这些测试方法的执行顺序是不确定的。
但是可以通过以下几种方式来控制多个测试方法的执行顺序:
- 使用@FixMethodOrder注解指定测试方法的执行顺序。
- MethodSorters.JVM(按照JVM得到的方法顺序,也就是代码中定义的方法顺序)
- MethodSorters.DEFAULT(默认的顺序)
- MethodSorters.NAME_ASCENDING(按方法名字母顺序执行)
@FixMethodOrder可以指定排序方式,例如按方法名字母顺序等。
- 给测试方法加上@Order注解手动指定顺序。
- 把测试方法组织成一个测试套件,在套件中指定测试方法的顺序。
所以通过不同的方法,我们可以灵活地控制JUnit中多个测试方法的执行顺序。
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:躁静有徒
- 链接:https://blog.zaojingyoutu.top//article/e0030f90-187f-48c5-bc58-95df6c3f5604
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章