java - 如何在java中使用mockito模拟调用类的方法

标签 java junit mockito

我有一个类调用另一个类的方法来获取报告状态。

Class A {
  private classb b = new classb();
  method x() {
    String xyz =b.method1( parm1, parm2) 
  }
}

因此,当 Junit 测试方法 x 时,在 b.method() 上获取空指针。我已经为 b 类创建了模拟并做了以下操作

Mockito.doReturn(val).when(classbMock).method1(parm1,parm2);

请帮助我如何模拟 b 类并通过它。

谢谢

最佳答案

为了模拟 b,您需要将其提供给 A 类的实例。

至少有几种方法可以做到这一点:

  1. 使用像 ReflectionUtils 这样的东西在 A 中四处寻找并更改字段的值
  2. A 一个构造函数,允许您将依赖项注入(inject) A
  3. 只需模拟 A.x 并假设 b 有效(因为它有自己的单元测试)

我更喜欢选项 3(假设 A 依赖于被测对象而不是被测对象)。对于单元测试,我只想模拟直接依赖项,而不是所有 transient 依赖项。

关于java - 如何在java中使用mockito模拟调用类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862110/

相关文章:

java - HttpClient 错误 : The target server failed to respond

JavaFX - 等待用户在元素上单击鼠标

android - 如何在 Log 中模拟方法 e

java - void 方法应使用哪个测试替身

java - Powermock withArguments 调用变量输入

javascript - Java 中的等效数据结构?

java - SWT Droptarget 重叠问题

spring-mvc - 无法为 Junit 测试和 Spring 加载 ApplicationContext

java - JUnit 测试期间重复的 log4j 输出

java - 单元测试旨在检查特定故障,但即使抛出了预期的异常,它仍然失败?