文档章节

控制Junit中方法的执行顺序

PagePage
 PagePage
发布于 2014/11/19 17:01
字数 378
阅读 194
收藏 0

加入/修改Junit4.11的依赖包

Maven

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
</dependency>

jar:  junit-4.11.jar

在测试类上添加注解@FixMethodOrder注解

@FixMethodOrder提供了三种排序方式

    

MethodStories.DEFAULT  //(默认的方式)

会按照方法的hashCode来做排序,不同系统中得到的hashcode有可能是不同的,随意并不能人为的保证执行的顺序。

MethodStories.NAME_ASCENDING

按照方法名排序后调用,所以可以很好的通过规范方法名就能控制好执行的顺序,但从命名上我觉得并不好,需要添加和验证逻辑不相干的标示在方法命中。但是也可以很好的利用这个规则,更好的分组组织代码。

一组命名规则如下: test_模块序号_功能序号_方法名

例如: test_01_001_should_regist_success();

        test_01_002_should_login_success();

        test_01_003_should_login_fail_when_username_empty();

        ...

MethodStories.JVM

按照JVM返回的方法名的顺序执行,所以执行顺序也是不可以预测的。


所以如果业务中需要精准的控制代码的方法的测试顺序,可以通过MethodStories.NAME_ASCEDNING+方法名规则来实现。



© 著作权归作者所有

共有 人打赏支持
下一篇: SpiderMonkey安装
PagePage
粉丝 4
博文 41
码字总数 13851
作品 0
昌平
后端工程师
私信 提问
Junit测试方法保证执行顺序

由于需要做自动化测试,所以需要比较完善的单元测试。但是又因为某些测试的执行依赖另外一个测试产生的结果,所以希望所写的test case按照自己希望的顺序来执行。 随后博主查阅资料发现了Fix...

winvv
08/21
0
0
Junit使用GroboUtils进行多线程测试

写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的。JVM都终止了,在测试线程启动的其他线程自然也无...

凯文加内特
2015/04/13
0
1
JUnit框架功能详细——JUnit学习(一)

是著名的单元测试框架,在JUnit4中所有的测试用例采用@Annotation标注,这比JUnit3的通过类继承和特定方法名带来更大的灵活性。在花了一周多的时间学习JUnit4使用及原码后发现自己以往只用到...

gangzz
2013/07/13
0
8
在 NetBeans IDE 中编写 JUnit 测试

测试应用程序是开发周期中不可缺少的一部分,并且编写和维护测试单元有利于确保源代码中的方法能正常运行。IDE 集成了对 JUnit 单元测试框架的支持,它允许您快速和轻松地创建 JUnit 测试和测...

刘学炜
2011/12/26
0
0
Junit的新长征-Junit5

这几天做新课时,忽然发现Junit在Junit4这个版本上停留了十几年之后,原来已经出到5了(后知后觉),花了些时间研究了下,发现还真是不简单,我们一起来看看JUnit5上出现了哪些让人激动的新变...

城下秋草
07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Flask框架web开发:零基础入门

Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用。因此Flask框架是Python新手快速开始web开发最好的选择,此外...

笔阁
5分钟前
0
0
VMware前路难测,多个厂家群雄逐鹿

在人们高谈Salesforce、亚马逊等新兴云计算厂商取得的成就时,以VMware、HPE和Cisco为代表的老牌厂商也在进行着自己的转型和变化,而且还取得一定的进展。以VMware为例,虚拟机巨头公布了第二...

linuxCool
8分钟前
0
0
什么是以太坊DAO?(一)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 “在区块链上,没有人知道你是一台冰箱”——理查德布朗 到目前为止,我们列出的所有...

geek12345
9分钟前
0
0
linux防火墙操作

一、.对于centos7自带的防火墙的相关指令 #停止firewall systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #查看firewall的状态 systemctl st......

张锦飞
11分钟前
0
0
Linux 磁盘与磁盘分区

  Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件。本文介绍磁盘设备在 Linux 系统中的表示方法以及...

SEOwhywhy
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部