控制Junit中方法的执行顺序
博客专区 > PagePage 的博客 > 博客详情
控制Junit中方法的执行顺序
PagePage 发表于3年前
控制Junit中方法的执行顺序
  • 发表于 3年前
  • 阅读 154
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: Junit 4.11中提供了一个功能来制定测试方法的执行顺序。一个很好的例子就是:针对现在功能写系统级测试(以及就是按照操作流程,每个接口都调用一遍,返回值是预期的结果,从而保证功能可用性。)

加入/修改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+方法名规则来实现。



标签: JUnit TDD
共有 人打赏支持
粉丝 4
博文 41
码字总数 13851
×
PagePage
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: