Android 如何使用mock模拟Build.VERSION.SDK_INT
如何在mock中模拟Build.VERSION.SDK_INT 我已经做了以下工作:Android 如何使用mock模拟Build.VERSION.SDK_INT,android,testing,kotlin,android-testing,mockk,Android,Testing,Kotlin,Android Testing,Mockk,如何在mock中模拟Build.VERSION.SDK_INT 我已经做了以下工作: @Test fun testFoo(){ mockkStatic(Build::class) mockkStatic(Build.VERSION::class) every { Build.VERSION.SDK_INT } answers { 22 } } 我最终得到了io.mockk.MockKException:在每个{…}块中缺少调用。一旦代码命中每个块
@Test
fun testFoo(){
mockkStatic(Build::class)
mockkStatic(Build.VERSION::class)
every {
Build.VERSION.SDK_INT
} answers { 22 }
}
我最终得到了
io.mockk.MockKException:在每个{…}块中缺少调用。
一旦代码命中每个
块。您可以像这样围绕构建配置构建一个包装器
object MyAppBuildConfig {
fun getVersionSDKInt(): Int {
return Build.VERSION.SDK_INT
}
}
然后用mockkObject模拟MyAppBuildConfig并返回所需的版本号
mockkObject(MyAppBuildConfig)
every { MyAppBuildConfig.getVersionSDKInt() } returns 22
与模拟API级别相比,模拟API级别可能会导致不准确的结果。这与其说是解决方案,不如说是一种变通方法