模拟 java 中函数的输入



假设我们有一个函数,它将输入作为类对象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() 中配置的任何值

相关内容

  • 没有找到相关文章

最新更新