Java 单元测试在Spring中下载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

我正在为Spring中的端点编写一个单元测试,它发送一个csv文件作为响应。我可以进行检查,如检查响应状态和内容类型,但如何比较CSV的内容?我尝试将响应转换为字符串并进行比较,但没有成功。有人能给我指出正确的方向吗

以下是我尝试过的:

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字符串解析为列表,对它们进行排序,然后进行比较