我一直在使用ErrorCollector Rule来收集失败的测试用例,其代码如下所示:
@Rule
ErrorCollector collector = new ErrorCollector();
Map<X, Y> inputOutputMap = new HashMap<X,Y>();
inputOutputMap.add(new X("Input"), new Y("Output"));
//Mocking service layers and returning expected outputs.
for(Entry<X,Y> entry : inputOutputMap.entrySet()){
String url = "/do/something"
Gson gson = new Gson();
String json = gson.toJson();
try{
this.mockMvc.perform(get(url)
.contentType(MediaType.APPLICATION_JSON)
.content(json)).andExpect(status().isInternalServerError());
} catch(Exception e) {
collector.checkThat(e.getMessage, entry.getValue().getMessage());
}
}
所以我的问题是,在收集所有错误之后,是否可以打印所有错误,以及编写测试用例的方式是一种写入方式-迭代映射并检查各个输入的输出?
最佳答案
您可以扩展ErrorCollector
并使verify
公开。然后调用它并捕获MultipleFailureException
。从中通过Throwables
获取getFailures
。
getFailures
这可能比从头重新实现ErrorCollector
好。