簡體   English   中英

如何測試使用實用程序調用並需要返回其輸入的方法?

[英]How to test method that uses Utility calls and need to return its input?

我有一個 Java 方法,看起來像這樣:

public Map<String <Set<Something>> mathod() {
  Map<String, Set<Something>> originalMap = createMap();
    
  return Utils.fixMap(originalMap);
}

我有一個 groovy/spock 測試,我需要測試該方法,我需要模擬 Utils 並使 fixMap() 返回其輸入。

最初,Utils 方法是一個服務,它被模擬成這樣:

UtilService mock = Mock(UtilService) {
  fixMap(_ as Map) >> { Map input -> return input }
}

我不知道該怎么做。 請幫助,在此先感謝。

除非你的代碼在 Groovy 中,而它顯然不是,否則沒有辦法用 Spock 的內置 mocking 來做到這一點。

但是,您可以使用Mockito 來執行 static mocking

總的來說,我建議不要做任何類似的事情,因為它通常會指出實施方面的問題。 考慮重構您的代碼,以便Utils.fixMap實際上被注入,然后可以輕松地模擬它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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