Java 单元测试在Spring中下载CSV
我正在为Spring中的端点编写一个单元测试,它发送一个csv文件作为响应。我可以进行检查,如检查响应状态和内容类型,但如何比较CSV的内容?我尝试将响应转换为字符串并进行比较,但没有成功。有人能给我指出正确的方向吗 以下是我尝试过的:Java 单元测试在Spring中下载CSV,java,unit-testing,spring-mvc,csv,spring-boot,Java,Unit Testing,Spring Mvc,Csv,Spring Boot,我正在为Spring中的端点编写一个单元测试,它发送一个csv文件作为响应。我可以进行检查,如检查响应状态和内容类型,但如何比较CSV的内容?我尝试将响应转换为字符串并进行比较,但没有成功。有人能给我指出正确的方向吗 以下是我尝试过的: public void testDownloadCSV() throws Exception { RequestBuilder request = MockMvcRequestBuilders.get (getRequestMap
public void testDownloadCSV() throws Exception {
RequestBuilder request = MockMvcRequestBuilders.get
(getRequestMapping("/downloadCSV/" + ID))
.contentType(contentType);
ResultActions result = getMockMvc().perform(request);
String csvString = "CSV Data goes here";
String resultString=content().toString();
if (log.isDebugEnabled()) {
result.andDo(print());
Assert.assertTrue(csvString.equals(resultString));
}
// tests:
result.andExpect(status().isOk()).andExpect(content().contentType
(contentType));
}
不确定在比较字符串内容时看到了什么样的差异。常见的问题是缺少/存在空白字符 如果是这样,只需使用Java library调用,以这种方式比较字符串:
assertThat(actualContent, equalToIgnoringWhiteSpace(expectedContent));
如果您的逻辑不区分顺序,恐怕您需要首先将CSV字符串解析为列表,对它们进行排序,然后进行比较