文档章节

关于测试中使用ArgumentCaptor来验证执行过程中对象的值

Kxvz
 Kxvz
发布于 2015/05/20 17:25
字数 305
阅读 772
收藏 0

官方的示例:

ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());

大体步骤:

首先构建ArgumentCaptor需要传入需要被捕获变量的对象,如示例中的Person.class。

然后在verify调用Mock对象的方法中调用argument.capture()来捕获执行该方法时该变量的值。

这样取到值后就可以进行值的验证,通过argument.getValue()得到该对象执行时的值。

关于ArgumentCaptor最多用到的方法:

argument.capture() 捕获方法参数  

argument.getValue() 获取方法参数值,如果方法进行了多次调用,它将返回最后一个参数值 

argument.getAllValues() 方法进行多次调用后,返回多个参数值

注意:

在使用的时候需要放在需要执行的方法之后,因为verify会验证执行,所以会放在调用方法之后,而不是像调用Mockito.when()设定条件时放在调用方法之前。

当遇到复杂对象的时候,如:Map<String,Map<String,Long>> 这样的对象的时候,觉得不好取值,可以设断点调试到该处,查看argument的数据结构,再进行取值验证。


© 著作权归作者所有

Kxvz
粉丝 12
博文 106
码字总数 29791
作品 0
成都
程序员
私信 提问
Mockito 中文文档 一

Mockito 中文文档 ( 2.0.26 beta ) Mockito库能够Mock对象、验证结果以及打桩(stubbing)。 该文档您也可以通过http://mockito.org获取到。所有文档都保存在javadocs中,因为它能够保证文档与...

张贴在
2016/06/27
0
0
41ZONE/Validation.FO

框架说明 这是一个验证框架,并且是一个 独立的验证框架 ,不依赖与其他已有的框架; 可以自由的嵌入到其他框架,比如Spring、Struts等流行框架,但实质来说他是独立的,所以无所谓嵌入到哪里...

41ZONE
2017/05/29
0
0
使用 Spock 框架进行单元测试

原文出处:@蛋疼的axb 1.摘要 最近一段时间接触到了spock这个可以用于java和groovy项目的单元测试框架,写了一段时间单测之后认为这个框架不错,值得写一篇文章推广一下。 2.关于单元测试 很...

@蛋疼的axb
2017/12/03
0
0
使用Spock框架进行单元测试

1.关于单元测试 很多人一谈到单元测试就会想到xUnit框架。对于一些java新人来说,会用jUnit就是会写单元测试,高级点的会捣鼓一下testng,然后就认为自己掌握了单元测试。 而实际上,很多人不...

莫铭
2016/08/02
182
0
七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。 系列文章 七天学会ASP.NET MVC...

葡萄城控件技术团队
2015/06/30
34
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部