![](/img/trans.png)
[英]Why do multiple JUnit TestWatchers not spawn multiple test method calls?
[英]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.