【发布时间】:2020-11-07 02:17:53
【问题描述】:
我的项目中有一些 3rd 方静态 util 方法,其中一些只是通过或抛出异常。有很多关于如何使用 PowerMock 模拟静态方法的示例,但 Junit5 不支持 PowerMock,它的返回类型不是 void。但是我怎样才能模拟一个返回 void 的静态方法只是“doNothing()”呢?
【问题讨论】:
标签: java mockito junit5 powermock powermockito
我的项目中有一些 3rd 方静态 util 方法,其中一些只是通过或抛出异常。有很多关于如何使用 PowerMock 模拟静态方法的示例,但 Junit5 不支持 PowerMock,它的返回类型不是 void。但是我怎样才能模拟一个返回 void 的静态方法只是“doNothing()”呢?
【问题讨论】:
标签: java mockito junit5 powermock powermockito
不要嘲笑它。根据您的最小描述,您可以将使用站点替换为 Consumer 并提供一个模拟。 (您甚至可以使用对静态方法的方法引用来初始化字段,并且只需使用 setter 方法来覆盖它们。)
然而,被测类调用这些静态方法这一事实通常只是测试不应该关心的实现细节,只检查可观察到的行为。
【讨论】:
在其上构建一个包装器类,调用包装器方法,如果您可以做不同的行为或者可以模拟调用类/方法的包装器,那么您可以在测试中使用不同的包装器,
【讨论】: