当前位置: 首页 > 知识库问答 >
问题:

替换PowerMockito。由Mockito验证静态。在Android上验证

权浩阔
2023-03-14

Mockito似乎获得了越来越多的PowerMockito功能。

当我更新到

        junitVersion = "4.13.2"
        mockitoVersion = "4.2.0"
        hamcrestVersion = "2.2"
        powermockVersion = "2.0.9"

测试失败了。

所以我试图摆脱PowerMokito。

问题是没有验证静态https://www.javadoc.io/doc/org.powermock/powermock-api-mockito/latest/org/powermock/api/mockito/PowerMockito.html#verifyStatic-爪哇。lang.Class-org。莫基托。验证。验证模式-

https://github.com/telekom/SmartCredentials-SDK-android/blob/develop/SmartCredentials_aOS/camera/src/test/java/de/telekom/smartcredentials/camera/views/presenters/CameraViewPresenterTest.java#L66

我该如何取代

PowerMockito.verifyStatic(ApiLoggerResolver.class);

我只是写吗

Mockito.verify(ApiLoggerResolver.class);

还是我必须做一个

        MockedStatic<ApiLoggerResolver> apiLoggerResolverMockedStatic = Mockito.mockStatic(ApiLoggerResolver.class);

        Mockito.verify(apiLoggerResolverMockedStatic);

共有1个答案

韩英锐
2023-03-14

这在我需要的Android上不起作用,是什么引发了这个问题。

Mockito's inline mock maker supports static mocks based on the Instrumentation API.
You can simply enable this mock mode, by placing the 'mockito-inline' artifact where you are currently using 'mockito-core'.
Note that Mockito's inline mock maker is not supported on Android.

我使用mockito-core,但似乎mockito-inline不适用于Android。也许下一个版本会支持Android?!

 类似资料:
  • 我正在Junit上工作 这就是我所做的。我已发出请求,并且我的请求已成功调用我的控制器。当我尝试使用要测试是否调用了静态方法,我得到一个错误,如下所示。 我得到的错误是: 我的问题是: > 我可以使用在我的方法。如果"是"如何? 我还想在上使用验证。我该怎么做呢? 任何帮助都是值得赞赏的。

  • 问题内容: 我正在为类似于以下示例的方法编写JUnit测试用例: 我在测试类中编写了以下测试用例: 现在,我想验证是否调用了Sample Sample类的static methodC()。如何使用PowerMockito 1.6实现?我已经尝试了很多东西,但是似乎对我来说没有用。任何帮助表示赞赏。 问题答案: 就我个人而言,我不得不说PowerMock等是您的代码不错的情况下不应该解决的问题的解决

  • 拥有一个内部生成错误消息的类,并使用android的静态函数util。日志i(String,String)来记录错误(可能是其他静态函数来记录故障)。 测试旨在验证是否记录了错误消息(使用mockito inline 3.8.0): 如何模仿android。util。登录并验证其静态android。util。日志已使用字符串调用i(String,String)? (powermock不是选项。它使

  • 我试图验证在使用powerMockito 1.6.4测试服务方法时从未调用过静态方法 我按照这个答案做了同样的事情。 以下是我的代码。 我现在面临的问题是,调用real并给出nullPointerException。 我的假设是与一起工作,以便指定要验证的静态方法。 我错过什么了吗?

  • 我试图为以下静态方法编写一个测试: 多谢! 本。

  • 可以在路由规则定义的时候调用validate方法指定验证器类对请求的数据进行验证。 例如下面的例子表示对请求数据使用验证器类app\index\validate\User进行自动验证,并且使用edit验证场景: Route::post('hello/:id', 'index/hello') ->model('id', 'app\index\model\User') ->valida