junit 如何在没有@Mock注解的情况下模拟上下文

1bqhqjot  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(163)

我目前正在重构单元测试,并尝试尽可能多地使用import com.nhaarman.mockitokotlin2.mock
我试着模仿上下文像这样private val context = mock<Context>
但是,它抛出了这样的异常:java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked.
我的怀疑是,上下文不能以private val context = mock<Context>的方式被嘲笑,而且如果没有@Mock注解,它也不能被嘲笑。
之前,Context被这样嘲讽:

@Mock
lateinit var context: Context

我的怀疑是正确的吗?如果是的话,我能得到一个解释吗?为什么不能这样嘲笑它?有什么办法吗?

rm5edbpk

rm5edbpk1#

您可以使用MockContext。官方文档位于:https://developer.android.com/reference/android/test/mock/MockContext

private lateinit var mockContext: MockContext

@Before
fun setUp() {
   mockContext = MockContext()
}

相关问题