繁体   English   中英

如何使用 Mockito 在 Android 中模拟 Companion object

[英]How mock Companion object in Android using Mockito

我一直在尝试运行联合测试,现在我在 mocking 应用程序上下文中遇到了一些问题。 我试过 mockStatic() 但不工作。 我正在使用 Junit 5 和 org.mockito:mockito-inline:3.4.6 进行测试。

class ApplicationContext : Application() {

    init {
       instance = this
    }

    companion object {
        private var instance : ApplicationContext? = null
        fun applicationContext() : Context = instance!!.applicationContext
    }

当我运行我的测试时,这会引发 NullPointerException。

java.lang.NullPointerException
    at com.adaptavant.yoco.Util.ApplicationContext$Companion.applicationContext(ApplicationContext.kt:14)
    at com.adaptavant.yoco.viewModel.LoginViewModelTest.setUp(LoginViewModelTest.kt:48)
    

有人可以帮我吗?

单元测试中没有可用的ApplicationContext - 您需要为此使用仪器测试:

  • 本地单元测试:

当您的测试没有 Android 框架依赖项或当您可以模拟 Android 框架依赖项时,使用这些测试可以最大限度地减少执行时间。

  • 仪器化测试

这些测试可以访问 Instrumentation API,让您可以访问您正在测试的应用程序的上下文等信息,并让您可以从测试代码控制被测应用程序。

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM