本文是Jmockit学习过程中,根据官网所列的工具特性进行解读。

1、调用次数约束(Invocation count constraints)

可以通过调用计数约束来指定预期和/或允许匹配给定期望的调用数。

2、记录严格期望(Recording strict expectations)

一般记录在“new Expectations(){...}”块中的期望是比较常规的。 这意味着他们指定的调用预计在重播阶段至少会发生一次; 而且它们可能会发生不止一次,并且以与其他记录的期望不同的顺序发生; 另外,与任何记录的期望不匹配的调用也同样允许以任何数量和任何顺序发生。但是如果没有调用与给定的记录期望匹配,则在测试结束时抛出“Missing invocation”错误,从而导致测试失败,抛出异常类似如下信息:

严格期望:当记录以后,仅允许在重放期间完全匹配记录(在明确指定的配额内,在需要时)进行调用,匹配调用数(默认情况下只有一个) 并按照它们发生的顺序。 在重播期间发生但未能匹配记录的严格期望的调用被认为是意外的,导致立即的“unexpected invocation”错误,从而导致测试失败。

非严格期望:顾名思义,对期望没有严格要求,mock的方法可以不调用。

1、明确验证(Explicit verification)

2、部分模拟(Partial mocking)

3、没有方法调用从记录切换到重播(No method call to switch from record to replay)

4、没有额外的代码用于隐式验证(No extra code for implicit verification)

5、没有额外的“准备测试”代码(No extra "prepare for test" code)

6、不需要使用@RunWith注释或基础测试类(No need to use @RunWith annotation or base test class)

7、void和非void方法之间的语法一致(Consistent syntax between void and non-void methods)

8、参数匹配仅适用于某些参数(Argument matchers for some parameters only)

9、基于值类型的属性使参数更容易匹配(Easier argument matching based on properties of value objects)

10、级联模拟(Cascading mocks)

11、支持模拟多个接口(Support for mocking multiple interfaces)

12、支持模拟注释类型(Support for mocking annotation types)

13、部分期望(Partially ordered expectations)

14、模拟构造函数和final / static / native / private方法(Mocking of constructors and final/static/native/private methods)

15、模拟/打桩的声明性应用在整个测试类(Declarative application of mocks/stubs to whole test classes)

16、自动注入模拟(Auto-injection of mocks)

17、模拟”新的”对象(Mocking of "new-ed" objects)

18、支持模拟枚举类型(Support for mocking enum types)

19、测试类的声明式模拟(模拟领域)(Declarative mocks for the test class (mock fields))

===================================================================

更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!

感谢阅读,作者原创技术文章,转载请注明出处

其他推荐相关阅读:

单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率

测试系列之二:Mock工具Jmockit实战

单元测试系列之三:JUnit单元测试规范

单元测试系列之四:Sonar平台中项目主要指标以及代码坏味道详解

单元测试系列之五:Mock工具之Mockito实战

单元测试系列之六:JUnit5 技术前瞻

单元测试系列之七:Sonar 数据库表关系整理一(rule相关)

单元测试系列之八:Sonar 数据库表关系整理一(续)

单元测试系列之九:Sonar 常用代码规则整理(一)

单元测试系列之十:Sonar 常用代码规则整理(二)

单元测试系列之十一:Jmockit之mock特性详解

最新文章

  1. Mesos高可用解决方案剖析
  2. View的弹性滑动
  3. 【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器
  4. POJ 1658
  5. C语言求x的y次方,自定义函数,自己的算法
  6. android系统自带的Service原理与使用
  7. Ansible安装配置
  8. oracle相关函数
  9. Redis知识整理
  10. nodeEE双写与分布式事务要点一二
  11. Linux第八节课学习笔记
  12. 如何设置.net控件SplitContainer平均分配
  13. Hadoop之HDFS思维导图
  14. 【转载】ssh-keygen 基本用法
  15. css3的2D和3D的转换
  16. Lower Power with CPF(三)
  17. [NOIp2009] $Hankson$の趣味题
  18. (五)动态SQL
  19. MQTT--单片机实现即时通信
  20. 原生Ajax(XMLHttpRequest)

热门文章

  1. [ionic3.x开发记录]ios下页面过渡效果不出现的小坑
  2. vue + ts @Prop boolean 问题
  3. java实现每个单词首字母大写
  4. NLog的介绍使用
  5. 前端 CSS 注释
  6. 创建存储过程 in,out,inout
  7. python多进程web爬虫-提升性能利器
  8. window系统下搭建本地的NuGet Server
  9. Excle中的使用小技巧
  10. vue-devtools的安装与使用