[英]Mockito - Mocking a method with parameters
我正在為采用參數id
的方法編寫單元測試,如下所示:
public void searchid(String id) {
Document doc = Repository.findDocument(id); //returns a document
if (doc == null) {
System.out.println("id missing");
} else {
String stringRecord = doc.asJsonString(); //converting doc to string
這里Repository.findDocument(id)
返回一個文檔。 在單元測試中,我從src/test/resources
獲取JSON文件。 那么,如何模擬Repository.findDocument(id)
,以便從資源中獲取文件呢?
謝謝,
您可以嘗試在單元測試方法中模擬Repository.findDocument(id)
調用。
Mockito.when(Repository.findDocument(Mockito.isA(String.class))).thenReturn(Mockito.mock(Document.class));
每當調用Repository.findDocument(id)
時,這將返回模擬文檔對象。
可測試性的關鍵是您擁有一個字段 repository
,該repository
將構造函數注入到您的類中。 這樣,您可以輕松地用假實例替換實際存儲庫(例如,模擬嘲笑)。
我知道,學習如何編寫可測試代碼的最佳來源是http://misko.hevery.com/code-reviewers-guide/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.