【发布时间】:2013-02-25 16:21:11
【问题描述】:
我有以下方法....
public void testa(Car car) {
em.persist(car);
car.setEngine(null);
}
在我的测试中我有:
protected final Car mockCar = context.mock(Car.class);
@Test
public void testCar() {
context.checking(new Expectations() {
{
oneOf(em).persist(car);
oneOf(car).setEngine(null);
}
});
this.stacker.testa(mockCar);
context.assertIsSatisfied();
}
我运行这个并且我不断得到:
意外调用 car.setEngine(null)...
如果我删除了在代码中设置引擎的代码,并且测试通过了测试...我完全不知道为什么会发生这种情况...
例外:
java.lang.AssertionError:意外调用:car.setEngine(null) 没有指定期望:你... - 忘记以基数从句开始期望? - 调用模拟方法来指定期望的参数?
【问题讨论】:
-
这段代码还能编译吗?您不会关闭
Expectations实现或对checking的调用。此外,您对testa的调用传递了一个Car对象,但testa不带任何参数。您能否将代码缩小到特定的失败案例,然后发布文件的全部内容? -
是的,它都可以编译......我是手写的,因为我的代码中有很多 cmets......