如何使用Mockito或其他mocking框架模拟MainActivity?

az31mfrm  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(114)

我需要模拟MainActivity,因为它是我的单元测试的一个参数。我试过private val mockMainActivity: MainActivity = mock()。但是我得到:
Mockito无法模拟此类:类se. username. mmi. onboard. activities. MainActivity。
Java:11 JVM供应商名称:JetBrains s.r.o. JVM供应商版本:11.0.15+0-b2043.56-8887301 JVM名称:OpenJDK 64位服务器VM JVM版本:11.0.15+0-b2043.56-8887301 JVM信息:混合模式操作系统名称:Linux操作系统版本:6.2.0-31-generic
您看到此免责声明是因为Mockito被配置为创建内联模拟。您可以在Mockito类javadoc的第39项中了解内联模拟及其限制。
基本例外:java.lang.IllegalArgumentException:无法创建类型org.mockito.exceptions.base.MockitoException:Mockito无法模拟此类:类se. username. mmi. onboard. activities. MainActivity。
如果您不确定为什么会出现此错误,请在GitHub上打开一个问题。
那么我怎么能嘲笑MainActivity呢?

6qftjkof

6qftjkof1#

在单元测试中,您可以创建MainActivity的mock或fake实现,并将其传递给SomeClass。这样,您就可以在SomeClass中测试逻辑,而不用担心MainActivity的复杂性。

@Test 
fun testSomeClass() { 
val mockMainActivity = mock(MainActivity::class.java) 
val someClass = SomeClass(mockMainActivity) // Test the behavior of SomeClass }

相关问题