可以对类和接口进行mock对象的创建,创建时可以为mock对象命名。对mock对象命名的好处是调试的时候容易辨认mock对象。
EasyMock 以及 Mockito 都因为可以极大地简化单元测试的书写过程而被许多人应用在自己的工作中,但是这两种 Mock 工具都不可以实现对静态函数、构造函数、私有函数、Final 函数以及系统函数的模拟,但是这些方法往往是我们在大型系统中需要的功能。
假设我们创建了LinkedList类的mock对象:
这里也可以查看Eclipse抛出的异常信息:
附录:参考文档一览
5分钟了解Mockito:
eq():int argument that is equal to the given value
使用doThrow(new RuntimeException(“clear exception”)).when(mockedList).clear();mockedList.clear();的方式Mock没有返回值类型的函数:
通过Maven管理的,需要在项目的Pom.xml中增加如下的依赖:
Mock对象的期望行为和返回值设定
覆盖率仍然使用JaCoCo和EclEmma:
单元测试系列之三:JUnit单元测试规范
以及Answer:
Mockito使用指南 :
单元测试系列之六:JUnit5 技术前瞻
l 未覆盖代码标记为红色
仍然使用Junit自动生成测试类或者手工新建测试类:
Mockito浅谈:
更新id为1的Person的名字,预期:能在DAO中找到Person并更新成功
List spy = spy(list);
当getPerson方法传入1的时候,返回一个Person对象,否则默认返回空
1.6 Demo从网上找来一个最简单的代码实例,bt网页游戏sf,下面以具体代码演示如何使用Mockito,代码有三个类,分别如下:
理解监控真实对象非常重要,有时,在监控对象上使用when(Object)来进行打桩是不可能或者不切实际的。因为,当使用监控对象时,请考虑用doReturn、Answer、Throw()函数组来进行打桩,例如:
JUnit+Mockito 单元测试(二):
//将会 抛出 RuntimeException:
在Eclipse下方的Coverage栏鼠标右键选择“Export Session…”,在弹出窗口中选择export的目标为“Coverage Report”如下图:
personDao.getPerson(1);
单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率单