如何使用Mockk模拟Build.VERSION.SDK_INT [英] How to mock Build.VERSION.SDK_INT using mockk

查看:401
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆