2016-10-05 2 views
1
(activity as HomeActivity).javaClass == HomeActivity::class.java 

返信false。どうして?モックのクラスがKotlinのJavaクラスと等しくないのはどうですか?

if(activity is HomeActivity)代わり(activity as HomeActivity).javaClass == HomeActivity::class.java

理由はMockito.mock(HomeActivity.java)が動的がどのSomeFooMockitoImpl.classを使用してHomeActivityを実装するクラスを作成します。次のとおりです。注、activityはあなたがおそらく使用する次の関数

fun set(activity: KClass<out Activity>) { 
    this.activity = Mockito.mock(activity.java) 
} 

答えて

5

と嘲笑されますその模擬インスタンスを作成するためのパラメータとしてHomeActivity.classを取得します。 によってHomeActivity$$EnhancerByMockitoWithCGLIB$$b8254f54

とその実際のクラス名:あなたはランタイムモックオブジェクトにチェックすることができ

のようなものになり、実行時のモックオブジェクトうん

activity.javaClass.simpleNameSomeFooMockitoImplする必要があります)

+0

いるように見えます。 Btw、 'HomeActivity'はクラスであり、インターフェースではありません – ZakTaccardi

+0

うん。私は、Mockitoによって返された疑いのあるオブジェクトが、HomeActivityを実装するクラスであることを意味しました。 – mklimek

+0

このテストをどのように修正したら、それを通過するのですか? – ZakTaccardi

関連する問題