java–Android单元测试为Mockito存根方法提供非模拟消息

java–Android单元测试为Mockito存根方法提供非模拟消息,第1张

概述我创建了以下测试方法,我在其中模拟Settings.Secure并存根该类的getString方法.@TestpublicvoidtestIsDevicePostOwner()throwsException{StringmockDeviceId="2c3977ad-0867-49d6-aad8-c2762f373551";PostmockedPost=mock(Post.class);Settings.Se

我创建了以下测试方法,我在其中模拟Settings.Secure并存根该类的getString方法.

@Testpublic voID testIsDevicePostOwner() throws Exception {    String mockdeviceid = "2c3977ad-0867-49d6-aad8-c2762f373551";    Post mockedPost = mock(Post.class);    Settings.Secure mockedSecure = mock(Settings.Secure.class);    ContentResolver mockContentResolver = mock(ContentResolver.class);    when(mockedSecure.getString(mockContentResolver, Settings.Secure.ANDROID_ID)).thenReturn(mockdeviceid);}

当我运行测试时,我收到以下错误:

java.lang.RuntimeException: Method getString in androID.provIDer.Settings$Secure not mocked.

有人有什么想法吗?

解决方法:

Settings.Secure.getString是一个静态方法,因此mock(Settings.Secure.class)不会模拟它.即使继承Settings.Secure并创建自己的静态getString也无济于事.

我不确定在这种情况下是否有任何可以帮助你的反射魔法;没有人想到.

总结

以上是内存溢出为你收集整理的java – Android单元测试为Mockito存根方法提供非模拟消息全部内容,希望文章能够帮你解决java – Android单元测试为Mockito存根方法提供非模拟消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存