簡體   English   中英

Mockito-模擬帶有參數的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM