gpt4 book ai didi

java - 创建一个在 java 中接受参数的 mockito 对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:00 25 4
gpt4 key购买 nike

我希望创建类 cls 的 Mockito 模拟对象:

public class cls{
private var;

cls(String x){
var = x;
}

}

这是我的代码:

cls obj = mock(cls.class)

obj 创建成功但 var 为空,因为没有参数传递给构造函数。此外,我不能使用 powermockito。创建模拟对象时如何将参数传递给 cls 的构造函数?

最佳答案

var 是私有(private)的。这是一个实现细节。 Mockito 的全部要点在于,您希望避免现有实现的任何方面,并将其替换为一个对象,该对象尽管具有完全虚假的实现,但仍能与您的被测类进行真实的交互。 p>

在幕后,Mockito 使用 Objenesis 或 ByteBuddy 来创建对象而不调用构造函数。所以在任何情况下创建一个模拟都不会有一个现实的构造函数。我建议改为 stub 任何使用 var 的方法。

另一方面,如果您想有选择地对其中一些方法进行 stub 或验证,但有实际的领域,您总是可以创建一个 spy :

cls obj = spy(new cls(100));

因为你正在调用一个真正的构造函数,类的字段将被实际设置,然后复制到你正在调用的新对象中 obj

关于java - 创建一个在 java 中接受参数的 mockito 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40409715/

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