我用mock編寫單元測試時遇到了問題。有一個我需要模擬的對象有很多getter,我在代碼中調用它們。但是,這些不是我的單元測試的目的。那麼,有沒有辦法嘲笑所有的方法,而不是一個一個地模擬它們。Mockito模擬所有方法調用並返回
下面是代碼例如:
public class ObjectNeedToMock{
private String field1;
...
private String field20;
private int theImportantInt;
public String getField1(){return this.field1;}
...
public String getField20(){return this.field20;}
public int getTheImportantInt(){return this.theImportantInt;}
}
,這是服務類我需要測試類內檢驗
public class Service{
public void methodNeedToTest(ObjectNeedToMock objectNeedToMock){
String stringThatIdontCare1 = objectNeedToMock.getField1();
...
String stringThatIdontCare20 = objectNeedToMock.getField20();
// do something with the field1 to field20
int veryImportantInt = objectNeedToMock.getTheImportantInt();
// do something with the veryImportantInt
}
}
,測試方法是像
@Test
public void testMethodNeedToTest() throws Exception {
ObjectNeedToMock o = mock(ObjectNeedToMock.class);
when(o.getField1()).thenReturn(anyString());
....
when(o.getField20()).thenReturn(anyString());
when(o.getTheImportantInt()).thenReturn("1"); //This "1" is the only thing I care
}
那麼,有沒有辦法可以避免將無用的「field1」寫入「field20」的所有「when」
您不必如果你罰款他們返回空。 – 2014-10-02 05:21:12
我確實需要在方法中使用它們,對不起,請不要在示例中使用它們。 – jasonfungsing 2014-10-02 05:23:22