mockito Mockit模拟类的静态方法,但同一个类的其他示例方法不应该被模拟,而是必须正常调用

3qpi33ja  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(118)

我有课,让我们说ABC。在这个类中有静态方法public static void staticOne(){...}在同一个类中也有非静态方法,比如method1() method2()
在mockito中,我想为method1()编写测试用例,其中静态方法staticOne被调用,我想模拟它。那我该怎么做呢?
我使用的是mockito 4.11.0版本。我可以只用mockito解决这个问题吗?

class ABC {

public void static staticOne(){
...
}

public string method1(){
staticOne();
...
}

}

如何在模拟staticOne时为method1()编写测试用例

gj3fmq9x

gj3fmq9x1#

虽然有可能,但我不建议这么做。可能有一种方法可以重构静态方法并将其拆分为一个util类。
如果不可能,你可以使用MockStatic,然后创建一个示例:

MockedStatic<ABC> staticABC = Mockito.mockStatic(ABC.class);
... // define operations on mock
ABC abc = new ABC();
abc.method1();
... // assertions

我在这个repository中添加了一个示例

相关问题