美文网首页
Junit测试方法执行顺序

Junit测试方法执行顺序

作者: AC编程 | 来源:发表于2018-08-24 12:01 被阅读599次

一、问题

做测试时,写了两个test case,期望先执行bindByBadData再执行bindByCorrectData。以为Junit是按方法位置的先后顺序来执行的,执行时发现并不是,与预期的执行顺序相反,如图:


image.png

二、解决办法

Junit 4.11里增加了指定测试方法执行顺序的特性,测试类的执行顺序可通过对测试类添加注解 @FixMethodOrder(value) 来指定,其中value 为执行顺序。三种执行顺序可供选择:
1、默认(MethodSorters.DEFAULT);
2、按方法名(MethodSorters.NAME_ASCENDING);
3、JVM(MethodSorters.JVM);
当没有指定任何顺序时,按默认来执行,代码调整后,如图:


image.png

三、拓展

  1. MethodSorters.DEFAULT
    默认顺序由方法名hashcode值来决定,如果hash值大小一致,则按名字的字典顺序确定由于hashcode的生成和操作系统相关(以native修饰),所以对于不同操作系统,可能会出现不一样的执行顺序,在某一操作系统上,多次执行的顺序不变。

  2. MethodSorters.NAME_ASCENDING (推荐)
    按方法名称的进行排序,由于是按字符的字典顺序,所以以这种方式指定执行顺序会始终保持一致;不过这种方式需要对测试方法有一定的命名规则,如 测试方法均以test_NN_fun命名(NN表示测试方法序列号 01-99)如:test_01_bindByBadData、test_02_bindByCorrectData

  3. MethodSorters.JVM
    按JVM返回的方法名的顺序执行,此种方式下测试方法的执行顺序是不可预测的,即每次运行的顺序可能都不一样(JDK7里尤其如此).

相关文章

  • Junit测试方法执行顺序

    一、问题 做测试时,写了两个test case,期望先执行bindByBadData再执行bindByCorrec...

  • JUnit4单元测试入门教程

    本文按以下顺序讲解JUnit4的使用 下载jar包 单元测试初体验 自动生成测试类 执行顺序 @Test的属性 下...

  • python+unittest 控制用例的执行顺序

    unittest的main()方法执行用例的顺序是按照测试类、测试方法的名字的ASCII顺序来执行测试方法。所以可...

  • Junit 反射、注解

    Junit测试方法,可以替代main方法执行测试代码。 如何定义测试方法: 1)不能有返回值,应该是void 2)...

  • Junit 多线测试 问题

    问题 在使用Junit测试时,发现在测试方法中启动新的线程,结果新开启的线程未执行,测试方法就结束了。难道Juni...

  • 凌宇的java之路(2017年1月23日02:05:53)

    [TOC] Junit测试 用junit测试可以不用每次都去写方法,注释方法去测试,提高了效率,如何测试呢,看代码...

  • 第35条:注解优先于命名模式

    命名模式的缺点:1.文字拼写错误导致失败,测试方法没有执行,也没有报错 (JUNIT测试框架测试的方法要用test...

  • iOS 单元测试流程分析和如何异步测试

    测试执行的流程 测试类和方法的执行是按照顺序,one by one同步执行的.执行测试的默认流程是,XCTest会...

  • junit

    1.junit常用注解有哪些?@BeforeClass 在所有测试类执行前调用这个方法,完成测试的环境准备工作@A...

  • Unity脚本执行顺序

    进阶测试参考unity脚本MonoBehaviour默认方法执行顺序测试 将脚本挂到空物体上执行 执行结果 Uni...

网友评论

      本文标题:Junit测试方法执行顺序

      本文链接:https://www.haomeiwen.com/subject/pisbiftx.html