JMock实践---(二)返回结果
来源:互联网 发布:怎么在mac上新建文件夹 编辑:程序博客网 时间:2024/06/15 05:18
声明:
Author:赵志乾
Date:2017-7-30
Declaration:All Right Reserved!!!
从Mock对象返回结果
如果没有显式定义Mock对象的返回结果,JMock将会为带返回值的Mock对象方法返回适当的结果。在大多数的测试中,我们需要显式的定义当Mock对象的某个方法被调用时应当返回的结果。
1、returnValue动作
可以在预期的will子句中,通过使用returnValue这个动作为Mock对象的方法调用定义返回结果。如下例所示:
oneOf (calculator).add(2, 2); will(returnValue(5));
注意:如果我们定义的返回结果类型不正确,JMock将会判定测试失败。
2、returnIterator动作
可以在预期的will子句中,通过使用returnIterator这个动作为Mock对象的方法调用定义返回集合的迭代器。如下例所示:
final List<Employee> employees = new ArrayList<Employee>();employees.add(alice);employees.add(bob);context.checking(new Expectations() {{ oneOf (department).employees(); will(returnIterator(employees));}});
注意:使用returnValue和returnIterator动作之间的区别在于:使用returnValue动作时,每次返回的结果都是一样的,一次调用就会消耗掉所有的迭代器;而使用returnIterator动作时,每次调用会消耗掉一个迭代器,即每次调用会返回一个新的迭代器。
3、onConSecutiveCalls动作
可以在预期的will子句中,通过使用onConsecutiveCalls这个动作为Mock对象的方法调用定义不同的返回结果或者定义不同的动作。如下例所示:
atLeast(1).of (anObject).doSomething(); will(onConsecutiveCalls( returnValue(10), returnValue(20), returnValue(30)));
注意:除了上面的这种方式,还可以通过定义多条预期来达到对Mock对象的连续调用返回不同结果的目的。如下例所示:
注:本博客中的实例代码均来自于JMock Cookbook。oneOf (anObject).doSomething(); will(returnValue(10));oneOf (anObject).doSomething(); will(returnValue(20));oneOf (anObject).doSomething(); will(returnValue(30));
阅读全文
1 0
- JMock实践---(二)返回结果
- JMock实践---(一)定义Expectations
- JMock实践---(四)参数匹配
- JMock实践---(五)模拟泛型类
- JMock实践---(六)方法调用次数
- 菜鸟学习Jmock测试-入门(二)
- jMock Cookbook 中文版二
- JMock
- Jmock
- JMOCK
- jmock
- JMock实践---(三)从Mock对象的方法抛出异常
- (1)jmock测试入门
- (2)jmock测试入门
- (3)jmock测试入门
- Mysql存储过程(二)——多结果集返回与java获取
- Java调用存储过程二(返回一行或多行结果集)
- Android 程式开发:(二)使用Intents链接Activities —— 2.3返回结果
- 自定义控件---组合控件---标题栏TopBar
- easyui-accordion(手风琴)
- Android 网络编程(二)HttpClient
- Spring Data加JPA (Maven构建Java工程)
- 今年暑假不AC
- JMock实践---(二)返回结果
- 关于最近学习AJAX一些感受
- 应聘相关(一)
- MQTT安装及使用
- The Tag Game
- PowerBI 学习笔记(5)—— Any Data,Way,Any Where,Any Time
- WoOden Sticks(贪心)
- Java解析xml文件的4种方式
- 骨牌问题(DP+矩阵快速幂)