我想验证一个模拟对象的参数是否正确映射(在方法调用之前有一个映射)。我创建了两个对象,其中一个具有预期值。我希望 false 失败,但不知何故 easymock 不会验证参数是否包含预期值。我该如何解决?
真正的班级会:
public SomeObject methodname() {
MyClass parameter = mapper.map(source,Dest.class);
serviceBeingMocked.doSomething(parameter); //<-- want to verify this parameter
}
测试
MyClass correct = ...;
correct.setA=a;
correct.setB=b;
expect(serviceBeingMocked(correct)).andReturn(iDontCare); //this should work
MyClass false = ...;
false.setA=eeeeeeeeeee;
false.setB=ffffffffff;
expect(serviceBeingMocked(false)).andReturn(iDontCare); // this test should fail
提前致谢!
编辑:找到答案(使用捕获记录参数并通过断言测试值)
捕获参数 = new Capitre(); 期望(serviceBeingMocked(EasyMock.capture(参数)));
assertEquals(parameter.getValue().getWhatever().equals(正确.getWhatever());