我一直在使用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好。

08-25 08:08