文档章节

同一个mock 连续多次调用返回不同结果实现方式

y
 yangming0322
发布于 2016/09/20 16:16
字数 135
阅读 1076
收藏 0

同一个mock 连续多次调用返回不同结果实现方式

Mockito.when(methodCall).thenReturn(1x).thenReturn(2x).thenReturn(nx)

 

/**
 * 1,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->FALSE
 * 2,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->TRUE
 * 各两次后退出
 */
@Test
public void test_makeOrgAndUsername_checkUserNickName_true_and_checkOrgAccount_false() {

    Mockito.when(userService.checkUserNickName(Mockito.anyString())).thenReturn(Boolean.TRUE).thenReturn(Boolean.TRUE);
    Mockito.when(organizationService.checkOrgAccount(Mockito.anyString())).thenReturn(Boolean.FALSE).thenReturn(Boolean.TRUE);
    String ss = impl.makeOrgAndUsername(C_USERNAME);
    /**
     * 当一次生成名称后 系统检查为被占用 此时
     * 以下两个方法 各执行一次
     * 间接证明 break 生效了
     */
    Mockito.verify(userService, Mockito.times(2)).checkUserNickName(Mockito.anyString());
    Mockito.verify(organizationService, Mockito.times(2)).checkOrgAccount(Mockito.anyString());
}

© 著作权归作者所有

y
粉丝 0
博文 17
码字总数 6387
作品 0
西城
高级程序员
私信 提问
Mockito 中文文档 六

never()函数 相当于,可参见 验证交互没有发生. 例如: verify(mock, never()).someMethod(); 如果你想验证之间没有交互,可以使用 或者 这两个方法 具体例子可以参考中的类 Returns: 验证模式...

张贴在
2016/06/27
0
0
使用 Moq 测试.NET Core 应用 -- 其它

第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnblogs.com/cgzl/p/9300356.html 第三篇文章, 关于属性Mock的...

solenovex
2018/07/15
0
0
Kotlin 写 Android 单元测试(三),Mockito mocking 框架的使用

Kotlin 写 Android 单元测试系列: Kotlin 写 Android 单元测试(一),单元测试是什么以及为什么需要 Kotlin 写 Android 单元测试(二),JUnit 4 测试框架和 kotlin.test 库的使用 Kotlin...

JohnnyShieh
2017/12/14
0
0
使用 EasyMock 更轻松地进行测试

测试驱动开发是软件开发的重要部分。如果代码不进行测试,就是不可靠的。所有代码都必须测试,而且理想情况下应该在编写代码之前编写测试。但是,有 些东西容易测试,有些东西不容易。如果要...

红薯
2009/05/19
1K
0
提升单元测试体验的利器--Mockito使用总结

为神马要使用Mockito?   在编写单元测试的时候,为了尽可能的保证隔离性,我们时常需要对某些不容易构造或者不容易获取或者对外部环境有依赖的对象,用一个虚拟的对象来创建以便于测试.假设你...

冬至饮雪
2017/06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习之模块

1、 stub_status模块: 用于展示nginx处理连接时的状态。 配置语法如下: Syntax:stub_status;Default:默认没有配置Context:server、location 可以编辑default.conf,加上如下配置: ...

码农实战
46分钟前
4
0
MySQL,必须掌握的6个知识点

目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎InnoDB MyISAM 比较 四、数据类...

李红欧巴
50分钟前
4
0
堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
今天
4
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
今天
6
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部