部分模拟单元测试的对象

时间:2012-07-23 21:30:06

标签: java unit-testing easymock

我正在使用easymock进行单元测试。我试图在测试类中模拟一个方法。

ServiceEJB partialMockServiceEJB = EasyMock
            .createMockBuilder(ServiceEJB.class)
             .addMockedMethod("getStatusType")
            .createMock();

但是它会抛出一个错误:多个同名的方法。我用不同数量的参数覆盖了这个方法。如何显示我想要的这些被覆盖的方法?我如何在这里应用参数。

感谢。

2 个答案:

答案 0 :(得分:3)

您可以传入参数类型以区分重载方法,例如

PortalServiceEJB partialMockServiceEJB = EasyMock
            .createMockBuilder(ServiceEJB.class)
             .addMockedMethod("getStatusType", int.class)
            .createMock();
顺便说一下,这不是局部模拟因为没有真正的对象在这里被部分嘲笑。另外,你可能想要将Mockito视为一个模拟框架,语法更好的IMO。

答案 1 :(得分:2)

不使用仅包含方法名称的addMockedMethod(),而是使用方法名称及其参数类型作为参数:http://www.easymock.org/api/easymock/3.1/org/easymock/internal/MockBuilder.html#addMockedMethod%28java.lang.String,%20java.lang.Class...%29