2016-05-30 76 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

我懷疑這是可能的Mockito,據我所知,你可以打開的類或接口中只有模擬方法。 – DariusL

回答

2

你不能這樣做與Mockito,但我認爲它可以用PowerMock完成。我們假設somethingAwesomeIsDoneHere()位於File.kt。然後,你必須嘲笑FileKt類,它的靜態方法:

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

我無法在我的Kotlin測試中訪問'FileKt'類。雖然令人驚訝的是我能夠在我的Java測試中這樣做! – Abdullah

+0

@Abdullah是的,似乎從Kotlin測試中無法訪問'FileKt'。我認爲你可以向https://kotl.in/issue提交問題 – Michael

+0

你可以使用'Class.forName'作爲解決方法。 –