单元测试 - mock异常

最近在使用mock进行单元测试的时候,遇到了下面的问题:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
1 matchers expected, 2 recorded:
-> at com.xxx.xxx.clearing.mock.AccountUpdateMock.execute(AccountUpdateMock.java:38)
-> at com.xxx.xxx.clearing.mock.AccountUpdateMock.execute(AccountUpdateMock.java:38)

This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));

For more info see javadoc for Matchers class.

看提示是告诉我们,如果有一个参数用了匹配,那么所有的参数都必须采用匹配。

但是我的用法是:

public List<Account> getUpdateAccountList(Date startDate, Date endDate) {    AccountQuery param = new AccountQuery();    param.setUpdateTimeStart(startDate);    param.setUpdateTimeEnd(endDate);    return accountService.updateAccountList(param);}

然后mock:
Mockito.when(prepare.getUpdateAccountList(Mockito.any(), Mockito.any())).thenReturn(accMods);两个参数均是用的any匹配,还是报上述错误。

后面有两种办法解决:方法1:定义一个 Date date = Mockito.any();      
Mockito.when(prepare.getUpdateAccountList(date, date)).thenReturn(accMods);
方法2:
public List<Account> getUpdateAccountList(AccountQuery param) {
    return accountService.updateAccountList(param);}
初步怀疑是,因为两个参数都是Date类型,两个any匹配出错。

原文地址:https://www.cnblogs.com/jylsgup/p/11154111.html

时间: 2024-10-09 02:38:22

单元测试 - mock异常的相关文章

Object-C单元测试&amp;MOCK(摘录精选)

断言测试类型: 下面一共18个断言(SDK中也是18个,其含义转自ios UnitTest 学习笔记,真心佩服原文的博主): XCTFail(format…) 生成一个失败的测试: XCTAssertNil(a1, format...)为空判断,a1为空时通过,反之不通过: XCTAssertNotNil(a1, format…)不为空判断,a1不为空时通过,反之不通过: XCTAssert(expression, format...)当expression求值为TRUE时通过: XCTAsse

单元测试 mock EF 中DbContext 和DbSet

现在EF越来越流行了,很多时候业务成都是直接访问DbContext 和DbSet来操作数据的. 那么我们测试的时候如何来mock这2个对象了?现在时间很晚了, 就直接贴code吧:首先建一个帮助类: public class MockedDbContext<T> : Mock<T> where T : DbContext { public Dictionary<string, object> Tables { get { return _Tables ?? (_Tabl

有效使用Mock编写java单元测试

有效使用Mock编写java单元测试:http://blog.csdn.net/chjttony/article/details/14522771 单元测试mock框架--jmockit实战:http://blog.csdn.net/ultrani/article/details/8993364 使用 EasyMock 更轻松地进行测试:http://www.ibm.com/developerworks/cn/java/j-easymock.html 使用mock测试: http://blog.

单元测试之Stub和Mock

单元测试之Stub和Mock FROM:http://www.cnblogs.com/TankXiao/archive/2012/03/06/2366073.html 在做单元测试的时候,我们会发现我们要测试的方法会引用很多外部依赖的对象,比如:(发送邮件,网络通讯,记录Log, 文件系统 之类的). 而我们没法控制这些外部依赖的对象.  为了解决这个问题,我们需要用到Stub和Mock来模拟这些外部依赖的对象,从而控制它们 阅读目录 实例 设计测试用例 什么是外部依赖 Stub和Mock的相同

好代码是管出来的——.Net Core中的单元测试与代码覆盖率

测试对于软件来说,是保证其质量的一个重要过程,而测试又分为很多种,单元测试.集成测试.系统测试.压力测试等等,不同的测试的测试粒度和测试目标也不同,如单元测试关注每一行代码,集成测试关注的是多个模块是否能正常的协同工作. 当我们在衡量代码好坏时,其中一点就是这些代码是否进行了单元测试,测试的质量.代码覆盖率怎么样?本文将从以下几个方面介绍.Net Core中的单元测试: 单元测试简介 .Net Core中的单元测试框架 使用xUnit.Net对.Net Core应用进行单元测试 创建xUnit.

Asp.net WebApi + EF 单元测试架构 DbContext一站到底

其实关于webapi和Ef service的单元测试我以前已经写过相关文章,大家可以参考: Asp.net WebAPI 单元测试 单元测试 mock EF 中DbContext 和DbSet Include 先看一下项目结构图: 这个demo非常简单,UTWebApi.Data 是纯粹的数据定义,UTWebApi.Service是我们的业务服务逻辑层,UTWebApi 是我们webapi的实现,UTWebApi.Tests就是测试项目. 数据层: BloggerDbContext的构造函数一般

Mockito 简明教程

原文同步至 http://waylau.com/mockito-quick-start/ Mock 测试是单元测试的重要方法之一.本文介绍了基于 Java 语言的 Mock 测试框架 - Mockito 的使用. 什么是 Mock 测试 Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的

测试驱动开发神器框架Mockito

作为菜鸟的我,以前没接触过Mock类型的框架,比如说要测试action层,我总是从action层调用service再调用dao访问数据库,这种方式从原则上来说是无疑是非常正确的,在没用mock框架之前我就隐隐约约的感觉到了这种方式有个不足的地方,那就是速度问题,测试action层的时候需要访问下面两层,如果我们下面两层已经经过单元测试证明是ok的,那么如果测试action层的时候再调用下面两层就等于是做了重复的动作,逻辑上没问题,只是有点重复,并且速度很慢,毕竟项目做到靠后期的时候文单元测试非常

iOS 第三方库、插件、知名博客总结

用到的组件1.通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SDWebImage多个缩略图缓存组件 UICKeyChainStore存放用户账号密码组件 Reachability监测网络状态 DateTools友好化时间 MBProgressHUD一款提示框第三方库 MWPhotoBrowser一款简单的 iOS 照片浏览控件 CTAssetsPickerController一个选择器组件, 支持从用户的相片库选择多张照片和视频. QB