我是Android上JUnit测试的新手,我正在测试一个函数,它使用Android上下文对象来获取字符串资源并进行一些比较。如何模拟android context object来成功测试这个函数?我使用Mockk测试库进行测试。
private val context = mockk<Context>()
private val contextWrapper = ApplicationContextWrapper(context)
private val objectUnderTest = AppLinkService(contextWrapper)
我试图使用mockk<Context>()
模拟上下文,但出现了以下异常
io.mockk.MockKException: no answer found for: Context(#1).getApplicationContext()
2条答案
按热度按时间wxclj1h51#
好吧,我找到答案了。使用轻松的模拟解决了我的问题
a1o7rhls2#
一般来说,模拟上下文是有风险的,因为它提供了有关应用程序环境的信息,并且在后台做了很多事情。
ApplicationProvider提供了在测试中检索当前应用程序上下文的能力。您需要做的就是导入
androidx:test:core
库的the latest version然后在测试类中检索上下文