如何使用easymock 3.x模拟一个类?

时间:2011-10-05 01:18:20

标签: java unit-testing testing easymock

所以我在课堂上有以下导入内容:

import static org.easymock.classextension.EasyMock.*;

所以我创建了一个真实的对象

SomeJobDataMap map = SomeJobDataMap();
map.put(Constant.SOMETHING,"somevalue");
map.put(Constant.SOMETHING_ELSE,"anothervalue")

然后我创建了一个模拟:

SomeJobContext context = createMock(SomeJobContext.class);
expect(context.getJobDataMap()).andReturn(map);

重播(上下文);

testTargetClass.methodUnderTest(context);

...除了“methodUnderTest”尝试访问值时发生的NPE之外没有错误。为什么我的模拟器没有返回地图?

2 个答案:

答案 0 :(得分:0)

也许您忘记配置测试期望调用该方法的次数?

SomeJobContext context = createMock(SomeJobContext.class);
expect(context.getJobDataMap()).andReturn(map).once();
replay(context);

testTargetClass.methodUnderTest(context);

答案 1 :(得分:0)

我猜您正在测试的课程正在与您的SomeJobContext课程合作。 在这种情况下,您需要调用testTargetClass.setContext(context)。