JUnit测试POST到参数化的API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JUnit测试POST到参数化的API相关的知识,希望对你有一定的参考价值。

我如何通过{service}到此JUnit测试?

@Test
public void test4() throws Exception {
    List<ProofOfDeliveryUndeliveredResult> returnList = new ArrayList<ProofOfDeliveryUndeliveredResult>();
    given(undeliveredQueryManager.prepareUndeliverServiceRecords(isA(UndeliveredRetrieveFilters.class),isA(String.class))).willReturn(ResponseEntity.ok().body(returnList));
    String response = server.perform(MockMvcRequestBuilders.post("/api/{service}/retrieve").contentType(MediaType.APPLICATION_JSON).content("{"startRetrieveTime":"","endRetrieveTime":"","timeStampFormat":""}"))
        .andExpect(status().isOk())
        .andReturn()
        .getResponse()
        .getContentAsString();
    assertEquals(response,"[]"); 
}
答案

post()MockMvcRequestBuilders方法允许您传递参数的可变列表,请参见javadoc。所提供的参数将依次替换为URL。

以上是关于JUnit测试POST到参数化的API的主要内容,如果未能解决你的问题,请参考以下文章

Junit参数化构造函数 - 参数数量错误

如何将JUnit 4测试添加到JUnit 3测试套件中

正在运行的Java参数化类给出错误

如何正确使用 MockMvc 在 Junit 中测试 post 方法?

操作栏选项卡:使用多次实例化的单个片段时如何传递参数

httpie进行 api的POST GET 测试