Mock(模拟)
Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。同时也可以当调用别人的模块,而该模块又没有实现时(只提供接口),我们可以在独立的环境中测试自己的模块逻辑。
EasyMock
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。
使用前的准备,下载所需的jar包:easymock-3.4.jar(或以上版本)
步骤
•使用 EasyMock 生成 Mock 对象;
•设定 Mock 对象的预期行为和输出;
•将 Mock 对象切换到 Replay 状态;
•调用 Mock 对象方法进行单元测试;
•对 Mock 对象的行为进行验证。
使用 EasyMock 生成 Mock 对象
根据指定的接口或类,EasyMock 能够动态的创建 Mock 对象(EasyMock 默认只支持为接口生成 Mock 对象,如果需要为类生成 Mock 对象,在 EasyMock 的主页上有扩展包可以实现此功能 )
marketMock = EasyMock.createMock(StockMarket.class);
其中 createMock 是 org.easymock.EasyMock 类所提供的静态方法
如果需要在相对复杂的测试用例中使用多个 Mock 对象,EasyMock 提供了另外一种生成和管理 Mock 对象的机制:
EasyMock 类的 createControl 方法能创建一个接口 IMocksControl 的对象,该对象能创建并管理多个 Moc

本文介绍了Mock技术在单元测试中的作用,重点讲解了EasyMock这个类库如何生成Mock对象,设定预期行为和输出,包括设定预期返回值、方法调用次数,并详细阐述了如何将Mock对象从Record状态切换到Replay状态,以便在测试中正确使用Mock对象。

408

被折叠的 条评论
为什么被折叠?



