我有下面的代码.字典只是一个 Package 器类型的字符串列表.
public Dictionary getDictionary(int size, String text) {
return restTemplate.execute(url, HttpMethod.GET, null, response -> {
BufferedReader br = new BufferedReader(new InputStreamReader(response.getBody()));
List<String> words = new ArrayList<>();
String line;
while((line = br.readLine()) != null){
if (isMatch(line, size, text)){
words.add(line.toLowerCase());
}
}
br.close();
return new Dictionary(words);
});
}
private boolean isMatch(String word, int size, String text) {
if(word.length() != size) {
return false;
}
return wordUtil.isAnagram(word, text);
}
我现在很难测试这个方法。HTTP调用只是返回一个带有新的行分隔符的纯文本单词列表。
我想写一个测试,在那里我可以stub response. getBody()。
也就是说,我希望response. getBody()返回一堆单词,并且我将Assert返回的Dictionary只包含大小为size
的单词,以及字符串text
的变位词。
这可能吗?
谢谢
1条答案
按热度按时间63lcw9qa1#
可以存根接受回调的方法,并在调用存根时执行回调。
其目的是:
when
/thenAnswer
执行代码thenAnswer
的invocationOnMock
获取回调示例话虽如此,这对于手头的任务来说似乎有点复杂。恕我直言,如果将处理Http的逻辑与业务逻辑分开,您会更好。提取一个接受inputStream的方法,并单独测试它。