一.Mock介绍
Mock 方法是单元测试中常见的一种技术:
它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开
二.单元测试与Mock对象的比较
1.单元测试是对应用中的某一模块进行测试
在单元测试中,常常是与其它模块协同进行测试,但是经常有遇到协同模块未开发完,或者是要与不易构造、复杂对象进行交互,在测试中,我们不能保证其他模块的正确性,所以也就无法发现测试中出现的错误是哪一个模块照成的
2.Mock对象能够模拟其他协同模块的行为,使测试模块可以通过与Mock对象协作,获得一个独立的测试环境
Mock对象是可以模拟不容易构造的(如 HttpServletRequest 必须在 Servlet 容器中才能构造出来)和比较复杂的对象(如 JDBC 中的 ResultSet 对象),使测试可以顺利的进行
三.EasyMock介绍
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库:
它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行
四.EasyMock的maven坐标
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
由于我们的测试用例运行在 JUnit 环境中,因此您还需要 JUnit坐标(版本3.8.1以上)
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
EasyMock一:EasyMock的单元测试