提问人:Ujef Malek 提问时间:8/22/2023 最后编辑:StultuskeUjef Malek 更新时间:8/22/2023 访问量:98
mockito mock 类的静态方法,但同一类的其他实例方法不应该被模拟,而必须正常调用
Mockito mock static method of class, but other instance methods of same class should not be mocked instead it must be called normally
问:
我有课,让我们说ABC。
在这个类中,有静态方法,在同一个类中,也存在非静态方法,比方说。public static void staticOne(){...}
method1() method2()
在mockito中,我想为其中调用静态方法staticOne编写测试用例,我想模拟它。
那我该怎么做呢?method1()
我正在使用 mockito 版本 4.11.0。 我可以仅使用 mockito 解决此问题吗?
=============================================================
class ABC {
public void static staticOne(){
...
}
public string method1(){
staticOne();
...
}
}
如何在模拟staticOne时编写测试用例method1()
答:
1赞
WLefever
8/22/2023
#1
虽然有可能,但我不推荐它。可能有一种方法可以重构静态方法并将其拆分为 util 类。
如果不可能,您可以使用并在之后创建一个实例:MockStatic
MockedStatic<ABC> staticABC = Mockito.mockStatic(ABC.class);
... // define operations on mock
ABC abc = new ABC();
abc.method1();
... // assertions
我在此存储库中添加了一个示例
评论
0赞
WLefever
8/24/2023
别客气。很高兴问题得到解决。
评论