(activity as HomeActivity).javaClass == HomeActivity::class.java
返回false
。为什么?注意,activity
使用以下函数进行模拟
fun set(activity: KClass<out Activity>) {
this.activity = Mockito.mock(activity.java)
}
答案 0 :(得分:5)
您可能想要使用:
if(activity is HomeActivity)
代替(activity as HomeActivity).javaClass == HomeActivity::class.java
原因是Mockito.mock(HomeActivity.java)
将使用HomeActivity
动态创建一个实现 SomeFooMockitoImpl.class
的类,它将HomeActivity.class
作为参数来创建该模拟实例
您可以在运行时检查模拟对象将是这样的:
HomeActivity$$EnhancerByMockitoWithCGLIB$$b8254f54
及其实际的类名:
activity.javaClass.simpleName
(应为SomeFooMockitoImpl
)