我正在测试一个类并想在其中模拟一个方法调用:
class B{
method A();
String method C();
}
现在,我想测试方法 A
,并模拟调用方法 C
,因为方法 C
从 URL 读取输入。我如何使用 Mockito 执行此操作?
最佳答案
这里有多种选择。
可能是最简单的 - 你可以使用 mockito spy (http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#13),这是一个你可以 stub 的对象的方法,而其他方法保留其现有行为。
或者,您可以使用模拟,然后使用静态 doCallRealMethod 方法 stub methodA,结合使用 when 和 thenCallRealMethod。
但在我看来,最重要的是重构您的类,以便从 URL 读取的部分位于单独的类中。然后为 B 类编写单元测试,为单独的类使用模拟。然后为从 URL 读取的类编写集成测试。
如果此方法不清楚,请在此处发表评论;我将尝试详细说明。
关于java - 用于模拟方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11353609/