假设我们有一个函数,它将输入作为类对象obj
。 我们可以模拟从obj
发出的调用吗?
例如:
Class Library {
public int methodA (Book obj) {
int x = obj.getPages();
return x+1;
}
}
Class Book {
int x = 10;
public int getPages(){
return x;
}
}
我正在为方法A编写测试用例
@InjectMock
Library library;
@Test
public void testMethodA () {
// mock the respnse of obj.getPages() call.
int x = library.methodA();
}
有没有办法嘲笑obj.getPages()
的反应
如果你只想模拟getPages()
方法,你不需要模拟Library
,只需Book
。这样做:
Library library = new Library();
Book obj = Mockito.mock(Book.class);
Mockito.when(obj.getPages()).thenReturn(1); // return 1 or whatever value you want
int x = library.methodA(obj);
methodA()
将调用 obj.getPages()
,这将返回您在 thenReturn()
中配置的任何值