首页 > 解决方案 > junit http get 请求与 csv 列表比较

问题描述

这个请求的目的 - 至少获得一些关于如何做的提示/想法 - java新手 - 新手问题也是如此 -

我想将我的 csv 列与 get 请求的输出相匹配并告诉我 - 匹配所有列或不匹配列 -



@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
//@WebMvcTest(value = SwProductController.class)
@ActiveProfiles("dev") // In case you want to test a particular profile
@AutoConfigureMockMvc
public class SwProductImplTest
{

        @Autowired
        private MockMvc mockMvc;


        @Test
        public void testRetrieveDetails() throws Exception {

                String filesss = "csv--file--path";
                JSONArray expected = new JSONArray(Files.readAllLines(Paths.get(filesss))
                        .stream()
                        .map(s -> new yourJson(s.split(",")[0], s.split(",")[1]))
                        .collect(toList()));

                RequestBuilder requestBuilder = MockMvcRequestBuilders
                        .get("/swproduct/list")
                        .accept(MediaType.APPLICATION_JSON);

                MvcResult result = mockMvc.perform(requestBuilder).andReturn();
                //System.out.println(result.getResponse());

                JSONAssert.assertEquals(result.getResponse().getContentAsString(), expected, false);


        }

        private class yourJson {
                String s;
                String s1;


                public yourJson(String s, String s1) {
                        this.s = s;
                        this.s1 = s1;

                }
        }
}


获取请求的输出如下所示 - get-request

.csv 文件 -

sw product,sw product module,technology
Product 1,Module 1,REGULAR
Product 1,Module 2,SPRING CLOUD
Product 2,Module 1,REGULAR
Product 2,Module 3,REGULAR

标签: spring-bootjunitjava-8stream

解决方案


两个数据都是相同的,但唯一的区别是您的输出是 JSON 格式,而您发布的示例是表格形式。两者都可以正常工作


推荐阅读