2017-03-07 93 views
3

我想測試一個片段的方法,但這種方法我稱之爲吐司:如何忽略JUnit測試中的吐司?

Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show(); 

現在我想測試使用JUnit和Powermockito的方法。爲此我想忽略烤麪包。我想這樣的:嘲笑面包和ignor toast.show()

Toast toastMock = mock(Toast.class); 
doReturn(toastMock).when(Toast.makeText(any(Activity.class), anyString(), Toast.LENGTH_SHORT)); 
doNothing().when(toastMock).show(); 

但我總是得到一個RuntimeException,因爲我把吐司,而無需創建一個新的敬酒對象。我怎樣才能繞過這個問題?

+0

你可以添加完整的測試用例嗎?與PowerMockito設置以及 –

+0

你試圖嘲笑一個靜態方法,你要麼必須將靜態調用包裝到一個非靜態類,然後你可以模擬,或嘲笑靜態方法,你可以在這裏找到幫助http://stackoverflow.com/questions/10583202/powermockito-mock-single-static-method-and-return-object – zsmb13

回答

0

用負責顯示Toast的方法編寫外部類,將其注入fragment並嘲笑此類行爲。這可能是一種靜態方法,因爲您使用PowerMockito

如何注入?使用DaggerToothpick