懲戒在我班上一個方法測試過程中,我嘗試使用JUnit和對的Mockito寫單元測試(不儀器)爲Android。使用的Mockito
一些背景:我正在測試一個嚴重依賴視圖的類,我不能/不想在測試過程中實際膨脹視圖。有一次,我的類測試想要使用視圖的寬度,並且我定義了一個(公共)方法,該類用於在運行時獲取寬度(getWidth()
)。
在我的測試中,我想用Mockito來模擬getWidth()
方法。 (同時讓其他同學表現得相同)。只是爲了澄清:我的班級中的一種方法呼籲getWidth()
,我希望它在測試過程中返回一個模擬值。
所以我嘗試使用Mockito.spy()
方法實例化類,但我不知道這是否是正確的方法(它不起作用),或者如果有其他事情我應該做。
我當前的代碼:
mGraph = Mockito.spy(new Graph(xAxis, leftAxis, null, false, new Graph.Style(), curve));
Mockito.when(graph.getGraphWidth()).thenReturn(400);
我收到以下錯誤消息,雖然我不知道這是否是相關的,或只是另一個錯誤:
java.lang.IllegalArgumentException: dexcache == null (and no default could be found; consider setting the 'dexmaker.dexcache' system property)
感謝您的意見,這肯定會有問題!但是,我在(1)中手動配置的問題是我*不運行儀器測試 - 而且我不想。所以我不能使用該儀器。 – Joakim
哦!在這種情況下,問題更加明顯:您不能在基於JVM的測試中使用dexmaker。確保它不在類路徑上,並且你的版本的正常依賴關係在它上面。 –
是的,我意識到這一點,並添加爲答案...但它沒有任何聲明......感謝您的幫助 – Joakim