gpt4 book ai didi

java - 使用 Mockito 测试 void 方法

转载 作者:行者123 更新时间:2023-12-03 19:11:17 25 4
gpt4 key购买 nike

我有这样的方法:

public void someMethod() {
A a = new A(); // Where A is some class.
a.setVar1(20);
a.someMethod();
}

我想测试两件事:
  • Var1 的值a的成员变量是20。
  • someMethod()只调用一次。

  • 我有两个问题:
  • 这些测试目标是正确的还是我应该测试其他东西?
  • 我究竟如何使用 Mockito 进行测试?
  • 最佳答案

    您无法使用 Mockito 进行测试,因为 Mockito 无法访问您的代码创建的局部变量,然后让其超出范围。

    如果 A 是您的被测类或被测方法的注入(inject)依赖项,您可以测试该方法

    public class MyClass {
    private A a;

    public MyClass(A a) {
    this.a = a;
    }

    public void someMethod() {
    a.setVar1(20);
    a.someMethod();
    }
    }

    在这种情况下,您可以创建一个模拟 A,然后使用该模拟 A 创建一个 MyClass 的实例,调用该方法并验证是否已调用模拟 A。

    使用您的代码,测试代码的唯一方法是验证调用 someMethod() 的副作用。在 var1 等于 20 的 A 上。如果 A.setVar1()A.someMethod()没有任何副作用,那么代码是无用的:它创建一个对象,修改它,然后忘记它。

    关于java - 使用 Mockito 测试 void 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30188092/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com