如何使用Mockk模拟Build.VERSION.SDK_INT [英] How to mock Build.VERSION.SDK_INT using mockk
本文介绍了如何使用Mockk模拟Build.VERSION.SDK_INT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在模拟中模拟Build.VERSION.SDK_INT?
How can I mock Build.VERSION.SDK_INT in mockk?
我已完成以下操作:
@Test
fun testFoo(){
mockkStatic(Build::class)
mockkStatic(Build.VERSION::class)
every {
Build.VERSION.SDK_INT
} answers { 22 }
}
一旦代码到达every
块,我最终会得到io.mockk.MockKException: Missing calls inside every { ... } block.
.
I end up getting io.mockk.MockKException: Missing calls inside every { ... } block.
once the code hits the every
block.
推荐答案
您可以像这样在Build配置中构建包装器
You can build a wrapper around the Build config like this
object MyAppBuildConfig {
fun getVersionSDKInt(): Int {
return Build.VERSION.SDK_INT
}
}
然后使用模拟对象模拟MyAppBuildConfig并返回所需的版本号
Then mock the MyAppBuildConfig with mockkObject and return your desire version number
mockkObject(MyAppBuildConfig)
every { MyAppBuildConfig.getVersionSDKInt() } returns 22
这篇关于如何使用Mockk模拟Build.VERSION.SDK_INT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文