如何使用 mockk 库模拟 android 上下文

Tar*_*hyi 12 junit android kotlin android-resources mockk

我是 Android 上 JUnit 测试的新手,我正在测试一个函数,该函数使用 android 上下文对象来获取字符串资源并进行一些比较。如何模拟 android 上下文对象以成功测试此功能?为了测试,我使用 Mockk 测试库。

  private val context = mockk<Context>()
  private val contextWrapper = ApplicationContextWrapper(context)
  private val objectUnderTest = AppLinkService(contextWrapper)
Run Code Online (Sandbox Code Playgroud)

我试图使用 模拟上下文mockk<Context>(),但出现以下异常

io.mockk.MockKException: no answer found for: Context(#1).getApplicationContext()
Run Code Online (Sandbox Code Playgroud)

Tar*_*hyi 24

好的,我找到了答案。使用轻松模拟解决了我的问题

val mContextMock = mockk<Context>(relaxed = true)
Run Code Online (Sandbox Code Playgroud)