所以我在课堂上有以下导入内容:
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之外没有错误。为什么我的模拟器没有返回地图?
答案 0 :(得分:0)
也许您忘记配置测试期望调用该方法的次数?
SomeJobContext context = createMock(SomeJobContext.class);
expect(context.getJobDataMap()).andReturn(map).once();
replay(context);
testTargetClass.methodUnderTest(context);
答案 1 :(得分:0)
我猜您正在测试的课程正在与您的SomeJobContext课程合作。 在这种情况下,您需要调用testTargetClass.setContext(context)。