嘗試調用Mockito.when(foo.getBar()).thenReturn(baz)
和Mockito.verify(foo).getBar()
,這將不依賴靜態導入。不像@Mock
註釋,這在技術上是一個類,when
和verify
是Mockito類的靜態方法。
一旦你的工作,然後再嘗試靜態導入到大衛提到:
import static org.mockito.Mockito.when; // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.
這一操作將允許您使用Mockito.when
不指定Mockito
類。您也可以使用通配符,但按this SO answerJava docs建議謹慎使用通配符 - 尤其是因爲如果稍後將相同名稱的靜態方法添加到Mockito中,則可能會中斷。
添加import org.mockito.*;
是不夠的,因爲它增加了org.mockito
包中的所有類,但不包括org.mockito.Mockito
上的方法。
對於Eclipse尤其是,您可以通過將光標放在when
部分Mockito.when
上並按下Control-Shift-M(「添加導入」)來添加靜態導入。您還可以將org.mockito.Mockito
添加到您的收藏夾(窗口>首選項> Java>編輯器>內容輔助>收藏夾>新類型),以便所有Mockito靜態方法都顯示在Ctrl-Space內容輔助提示中,即使您沒有專門導入它們。 (您也可以爲org.mockito.Matchers執行此操作,它通過繼承技術在org.mockito.Mockito上可用,但由於這個原因可能不會在Eclipse中顯示。)
是否包含正確的靜態導入? –
那些是什麼? –
import static org.mockito.Mockito。*; –