2016-05-30 13 views
3

私はテスト目的のために模擬したい無料の機能をKotlinに持っています。私のテストでAndroid Kotlin:Mockito/PowerMockを使用してフリー機能を嘲笑

fun somethingAwesomeIsDoneHere(param: String) : String { 
    // Awesome 
} 

私はそれが呼び出されたときにモック値が返されるように/スタブにそれをモックとしたい:

私の自由な機能は、次のようなものです。

when(somethingAwesomeIsDoneHere(something)).thenReturn(retValue) 

私がPowerMockで行うことができたとしてもお知らせください。

PS:私のプロジェクトにはKotlin 1.0.1-2を使用しています。

+0

。 – DariusL

答えて

2

あなたはMockitoでそれを行うことはできませんが、私はそれがPowerMockでできると思います。 somethingAwesomeIsDoneHere()File.ktにあるとしましょう。そして、あなたはFileKtクラスをモックする必要があり、それは静的メソッドです:私はそれはMockito、私の知る限り、することができます唯一のモックオープンクラス内のメソッドやインタフェースで可能である疑い

mockStatic(FileKt::class.java) 
expect(somethingAwesomeIsDoneHere(something)).andReturn(retValue) 
replay(FileKt::class.java) 
+0

私はKotlinテストで 'FileKt'クラスにアクセスできません。驚いたことに私には私のJavaテストでそうすることができます! – Abdullah

+0

@Abdullahええ、 'FileKt'はKotlinテストからアクセスできないと思われます。私はhttps://kotl.in/issueに問題を提出できると思います – Michael

+0

回避策として 'Class.forName'を使用することができます。 –

関連する問題