文档章节

控制Junit中方法的执行顺序

PagePage
 PagePage
发布于 2014/11/19 17:01
字数 378
阅读 182
收藏 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+方法名规则来实现。



© 著作权归作者所有

共有 人打赏支持
PagePage
粉丝 4
博文 41
码字总数 13851
作品 0
昌平
后端工程师
JUnit框架功能详细——JUnit学习(一)

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

gangzz
2013/07/13
0
8
Junit使用GroboUtils进行多线程测试

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

凯文加内特
2015/04/13
0
1
在 NetBeans IDE 中编写 JUnit 测试

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

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

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

城下秋草
07/17
0
0
JUnit源码与设计模式欣赏——JUnit学习(三)

先介绍下这篇博文的由来,之前已经对JUnit的使用经行了深入的介绍和演示(参考JUnit学习(一),JUnit学习(二)),其中的部分功能是通过分析JUnit源代码找到的。得益于这个过程有幸完整的拜读...

gangzz
2013/08/17
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

InvalidKeyException: Illegal key size

Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 解决方案:去官方下载JCE无限制权限策略文件。 jdk 5: http://www.oracle.com/technetwork/j......

自由的开源
14分钟前
0
0
JAVA秒杀实现以及优化原理

秒杀与其他业务最大的区别在于:秒杀的瞬间, (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分...

小贱是个程序员
18分钟前
1
0
Spring Aop之Advisor解析

在上文Spring Aop之Target Source详解中,我们讲解了Spring是如何通过封装Target Source来达到对最终获取的目标bean进行封装的目的。其中我们讲解到,Spring Aop对目标bean进行代理是通过Ann...

爱宝贝丶
20分钟前
0
0
Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
45分钟前
2
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
56分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部