我有以下方法....JMock的意外方法調用,不明白爲什麼
public void testa(Car car) {
em.persist(car);
car.setEngine(null);
}
在我的測試
我有:
保護的最終租車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(空)...
如果我刪除設定發動機的代碼和測試代碼測試通過... IM完全糊塗了,爲什麼發生這種情況...
例外:
java.lang.AssertionError:意外調用:car.setEngine(空) 沒有指定的期望:你是否... - 忘記開始一個基數條款的期望? - 調用模擬方法來指定期望參數?
這段代碼編譯,甚至?您不要關閉'Expectations'實現或關於'checking'的調用。另外,你對'testa'的調用傳遞一個'Car'對象,但'testa'不帶任何參數。 您可以將代碼縮小到特定的失敗案例,然後發佈文件的全部內容嗎? – 2013-02-25 16:35:08
是的,這一切編譯....我手寫它,因爲我在我的代碼中有很多意見... – user1555190 2013-02-25 16:38:32