Reputation: 12467
(activity as HomeActivity).javaClass == HomeActivity::class.java
Returns false
. Why? Note, activity
is mocked with the following function
fun set(activity: KClass<out Activity>) {
this.activity = Mockito.mock(activity.java)
}
Upvotes: 1
Views: 522
Reputation: 24991
You probably want to use:
if(activity is HomeActivity)
instead (activity as HomeActivity).javaClass == HomeActivity::class.java
The reason is Mockito.mock(HomeActivity.java)
will dynamically create a class which implements HomeActivity
using SomeFooMockitoImpl.class
which gets HomeActivity.class
as parameter to create that mocked instance.
You can check in runtime mock object will be something like:
HomeActivity$$EnhancerByMockitoWithCGLIB$$b8254f54
and its actual class name by:
activity.javaClass.simpleName
(should be SomeFooMockitoImpl
)
Upvotes: 5