Jmockit之mock特性详解

本文是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))

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

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

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

时间: 2024-10-15 22:17:34

Jmockit之mock特性详解的相关文章

iOS开发——高级特性&Runtime运行时特性详解

Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 Runtime术语 消息 动态方法解析 消息转发 健壮的实例变量(Non Fragile ivars) Objective-C Associated Objects Method Swizzling 总结 引言 曾经觉得Objc特别方便上手,面对着 Cocoa 中大量

Servlet 3.0 新特性详解

转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性详解 张 建平2010 年 4 月 23 日发布 WeiboGoogle+用电子邮件发送本页面 6 Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其

Atitit.jdk java8的语法特性详解 attilax 总结

Atitit.jdk java8的语法特性详解 attilax 总结 1.1. 类型推断这个特别有趣的.鲜为人知的特性1 2. Lambda1 2.1. 内部迭代意味着改由Java类库来进行迭代,而不是客户代码.例如:1 2.2. Stream 流失接口 管道(pipelines)模式2 2.3. 方法引用(Method reference)2 2.4.  默认方法(Default method)2 2.5. 生成器函数(Generator function)2 2.6. 新加入的Nashorn

Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 这一章很多,但是很有趣,也是这书的最后一章知识点了,我现在还在考虑要不要写这个拼图和2048的案例,在此之前,我们先来玩玩Android5.X的新特性吧!

刘昕鑫 C# 特性详解

C# 特性详解 特性(attribute)是被指定给某一声明的一则附加的声明性信息. 在C#中,有一个小的预定义特性集合.在学习如何建立我们自己的定制特性(custom attributes)之前,我们先来看看在我们的代码中如何使用预定义特性. 1 using System; 2 public class AnyClass 3 { 4 [Obsolete("Don't use Old method, use New method", true)] 5 static void Old(

http协议及httpd特性详解

前言 随着互联网的迅猛发展和网络的普及,各类网站层出不穷,网站也成为企业宣传和实力展现的主要途径之一,说到网站就不得不说一下web服务了,现在比较流行的web服务还是当属Apache即httpd.本文将详解http协议及httpd的特性. http协议详解 http协议 http: Hyper Text Transfer Protocol 超文本传输协议 传输文本:HTML html: Hyper Text Mark Language 超文本标记语言 html文档的生成方式 静态:纯html格式

[Android 新特性] 安卓4.4新特性详解

在本月初,谷歌的5太子google  nexus5正式发布了,还给大家带来了全新的安卓android4.4的操作系统,并且官网给大家带来了新的说法,就是安卓4.4会比之前的系统更加省电,这个到底是为什么呢?网侠小编就来说说安卓4.4的为何省电的工作机制. 首先,我们要搞清楚一个问题,那就是什么是Dalvik? 在整个Android 4.4的更新特性中,最引人瞩目的应该就是虚拟机由Dalvik转成ART,也就是“中间件”的变更(Midware).先来看看什么是Dalvik. 如图,Dalvik虚拟

C#中的 特性 详解(转载)

本篇幅转载于:http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html C#中特性详解 特性提供了功能强大的方法,用于将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,即可在运行时使用"反射"的技术查询特性. 特性具有以下属性: 特性可向程序中添加元数据.元数据是有关在程序中定义的类型的信息.所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员.可

c#特性详解【含常用过滤器实例】

基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗------接口详解 基础拾遗------泛型详解 前言 本来7月份想着是用一个月把基础拾遗写完的,结果断断续续写了4个月了,才写了这几篇,这两天又规划着多写几篇,希望能坚持吧.两天一次和同事聊天竟然好多人都不知道,他们每天却都在用. 1.特性概念 特性(Attribute)是用于在运行时传递程序中各种元素(