2010-09-29 50 views
1

是否有可能爲模擬對象賦值。例如:將屬性設置爲模擬對象jmock

myMockObject = context.mock(MyObject.class); 

myMockObject.setId("someId"); 

我的方法,我測試到達終點,但最後沒有該對象,因此不進行身份對象被認爲是無效的驗證方法。我還能做些什麼嗎?

我可以以某種方式指定好嗎我期待着這個例外,但無論如何通過測試?

我發現這個鏈接,但我無法找到解決辦法:

http://www.jmock.org/yoga.html

我期待記錄扔有消息字符串的驗證異常,沒有任何人有這種經驗之前?

我嘗試這樣做:

context.checking(new Expectations() { 
      { 

allowing(logger).error(with(exceptionMessage)); 

    } 
     }); 

exceptionMessage消息是由在該我測試該方法的結束驗證對象的驗證方法拋出。

回答

1

您需要添加導致模擬方法來返回你所期望的價值的期望:

allowing (myMockObject).getId(); will(returnValue("someId")); 

這將導致的getId返回你期望的值,因爲它使用的是允許調用算吧如果未被調用,則不會導致測試失敗。

+0

我哪裏會寫這樣的代碼?裏面'context.checking(新的期望(){'或?我得到編譯錯誤,找不到存根'方法存根()未定義的類型myMockObject' +1努力 – ant 2010-09-29 13:59:33

+0

@ c0mrade什麼版本我正在使用jMock? – codelark 2010-09-29 14:24:22

+0

我正在使用2.5.1 – ant 2010-09-29 14:26:44