在JUnit-5中,如何模拟返回void的静态方法?我们可以使用import org.mockito.MockedStatic吗?

问题描述

我的项目中有一些第三方静态util方法,其中一些只是传递或引发异常。关于如何使用PowerMock模拟静态方法的例子很多,但是junit5不支持PowerMock,它具有除void以外的返回类型。但是,我该如何模拟将void返回到“ donothing()”的静态方法

解决方法

不要嘲笑它。根据您的简短描述,您可以将使用站点替换为Consumer并提供一个模拟。 (您甚至可以使用对静态方法的方法引用来初始化字段,而只需使用setter方法来覆盖它们即可。)

但是,被测类调用这些静态方法的事实通常是 ,只是测试不关心的实现细节,仅检查可观察的行为。

,

在其上构建包装器类,调用wrapper方法,如果您可以改变行为,或者可以模拟包装器来调用类/方法,则可以在测试中使用其他包装器,