(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)

10-08 17:50