簡體   English   中英

具有多個方法調用的類的 JUnit 測試

[英]JUnit test for Class with multiple method calls

Class QueryGenerator
..
  String generateQuery()
  {
   final String jsonString = anotherClass1.method();
   final Map<String, List<POJO> map = someMethod1(jsonString);
   final List<POJO> pojos = someMethod2(map);
   final POJO chosen_pojo = anotherClass2.method();
   final String query = ... //do something to generate the query;
  }
..
  someMethod1() { //do something};
  someMethod2() { //do something};
}

這個類有一個 json 字符串並從中檢索一個查詢字符串。 中間有很多步驟(反序列化、存儲到 POJO 等),每個步驟都由不同的類處理。 所有這些類都是從這個方法調用的。

對於單元測試,是否只測試最后一步以確保生成的查詢正確? (如果那一步是正確的,那么上面的所有步驟也是正確的,對吧?)。

如果你的方法一次做這么多不同的事情,你可能應該將它的職責划分給不同的方法甚至類。 如果你的方法變得更難進行單元測試是因為你的方法有很多責任。 您可以看到您的方法如何使用如此多的不同數據,而這些數據實際上也可以由其他類處理,因此您應該首先重構您的方法,使其實際上只執行最后一部分。

看,您可以輕松地分別測試 someMethod1() 和 someMethod2(),因此您可以依靠它們正常工作。 如果您的方法划分了大部分職責,您也可以單獨測試它們。

暫無
暫無

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

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