1
我正在使用EasyMocks。
在一個方法裏面有一個新的對象被創建。並在該對象上調用返回地圖的方法。如下所示模擬一個新的對象創建
test(){
Fun f= new Fun();
Map m =f.getaMap();
}
我想在當時返回一個自定義的Map。我該怎麼做。
謝謝。
我正在使用EasyMocks。
在一個方法裏面有一個新的對象被創建。並在該對象上調用返回地圖的方法。如下所示模擬一個新的對象創建
test(){
Fun f= new Fun();
Map m =f.getaMap();
}
我想在當時返回一個自定義的Map。我該怎麼做。
謝謝。
我從你的代碼猜測你已經給我們一個測試方法,在這個方法中你測試Fun
並查看Fun
產生的Map
。
依賴注入MapFactory
它創建Map
爲Fun
。我不確定EasyMock的語法,所以mockMapFactory
這裏是嘲笑的對象,它將有一個方法來爲你創建一個地圖。模擬該方法來生成地圖,然後調用你的類中的方法而不是使用new
。
test() {
Fun f= new Fun(mockMapFactory);
Map m =f.getaMap();
}
看看工廠設計模式,它是讓你避免調用new
,這樣就可以模擬對象的創建(和對象本身,如果需要)的一個真正好方法。這也意味着你的班級不再負責決定它創建什麼樣的對象。
當您測試工廠時,您將無法在其工廠內創建地圖。沒關係。要麼通過檢查來檢驗,要麼只是檢查你是否得到了正確的對象。
嘗試mockito ... :) – 2011-01-13 11:35:10