Mockito mock 所有方法调用和返回
2022-09-02 11:54:18
我在用模拟编写单元测试时遇到了问题。有一个对象,我需要模拟有很多getter,我确实在代码中称之为它们。但是,这些不是我的单元测试的目的。所以,有没有办法我可以嘲笑所有的方法,而不是一个接一个地嘲笑它们。
下面是代码示例:
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”的所有“时间”