假设我们有一个函数将输入作为类对象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;
}
}
我正在为methodA
编写测试用例@InjectMock
Library library;
@Test
public void testMethodA () {
// mock the respnse of obj.getPages() call.
int x = library.methodA();
}
有没有办法模仿obj.getPages()
答案 0 :(得分:3)
如果您只想模拟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()