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