java - 用于模拟方法调用

标签 java mockito

我正在测试一个类并想在其中模拟一个方法调用:

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/

相关文章:

java - 多个 DAO 实例 = 不好?

java - JDBC 在 "same"时间打开 2 个连接

java - 为什么我的 switch 语句中不能有重复的 case?

java - 如何断言在 void 方法中创建的值?

java - 使用 Mockito 匹配基于泛型类型的参数

java - 停止 JFX 嵌入的 YouTube 视频

java - 停止 IWizard 以获得警告消息

android - 使用 MockWebServer 对 RoboSpice 请求进行单元测试

java - PowerMockito : how to mock methods called by the constructor?

unit-testing - Mono.doOnError() react 器 block 单元测试