如何为发布请求创建测试

时间:2019-04-07 11:19:51

标签: java junit

我有一种方法,该方法在第三方资源中发送post请求并返回CloseableHttpResponse结果。我尝试(第一次)为我的项目实施junit测试。.我知道如何测试返回简单对象的方法,但我不知道-如何实现类似的测试方法?

public CloseableHttpResponse POST(String path, Map<String, String> parameters) throws URISyntaxException, IOException {
    List<NameValuePair> pairParameters = generateListOfNameValuePair(parameters);
    URI uri = new URIBuilder()
            .setScheme(SSL_SCHEME)
            .setHost(HOST)
            .setPath(path)
            .build();
    HttpRequestBase postMethod = new HttpPost(uri);
    try {
        ((HttpPost) postMethod).setEntity(new UrlEncodedFormEntity(pairParameters, "UTF-8"));
    } catch (UnsupportedEncodingException initE) {
        initE.printStackTrace();
    }
    return session.getHttpClient().execute(postMethod, session.getHttpContext());
}

1 个答案:

答案 0 :(得分:2)

如果使用Spring Boot,则可以使用Mockito单元测试。

这是一个示例,向您展示如何实现mockMvc和单元测试方法。

   @RunWith(SpringJUnit4ClassRunner.class)
   @WebAppConfiguration
   public class StockPlanControllerTest {

    @Autowired
    public WebApplicationContext context;
    public MockMvc mockMvc;
    @Before
    public void setUp() {
    mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
    }

  @Test
  public void POST(String path, Map<String, String> parameters) throws URISyntaxException, IOException {

   mockMvc.perform(post(path)
    .contentType(MediaType.APPLICATION_JSON)
    .param("paramkey", "paramvalue"))
    .andExpect(status().isOk());
   }

要了解有关Mockito单元测试的更多信息,本教程将为您提供更多帮助。 UG-framework