Java 如何为post请求创建测试
我有一个方法,可以在第三方资源中发送Java 如何为post请求创建测试,java,junit,Java,Junit,我有一个方法,可以在第三方资源中发送post请求,并返回CloseableHttpResponse结果。我(第一次)尝试为我的项目实现junittest。。我知道如何测试返回简单对象的方法,但我不知道-如何测试可能的类似测试方法 public CloseableHttpResponse POST(String path, Map<String, String> parameters) throws URISyntaxException, IOException { List&
post
请求,并返回CloseableHttpResponse
结果。我(第一次)尝试为我的项目实现junit
test。。我知道如何测试返回简单对象的方法,但我不知道-如何测试可能的类似测试方法
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());
}
public CloseableHttpResponse POST(字符串路径,映射参数)抛出URISyntaxException,IOException{
List pairParameters=generateListOfNameValuePair(参数);
URI=新的URIBuilder()
.setScheme(SSL_方案)
.setHost(主机)
.setPath(路径)
.build();
HttpRequestBase postMethod=新的HttpPost(uri);
试一试{
setEntity(新的UrlEncodedFormEntity(pairParameters,“UTF-8”);
}捕获(不支持DencodingException initE){
initE.printStackTrace();
}
返回session.getHttpClient().execute(postMethod,session.getHttpContext());
}
如果使用spring引导,则可以使用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());
}
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
公共类StockPlanController测试{
@自动连线
公共WebApplicationContext上下文;
公共MockMvc-MockMvc;
@以前
公共作废设置(){
mockMvc=MockMvcBuilders.webAppContextSetup(context.build();
}
@试验
public void POST(字符串路径、映射参数)抛出URISyntaxException、IOException{
mockMvc.perform(post(路径)
.contentType(MediaType.APPLICATION_JSON)
.param(“paramkey”、“paramvalue”))
.andExpect(status().isOk());
}
要了解有关Mockito单元测试的更多信息,本教程将为您提供更多帮助。
为什么不允许使用方法
param
和contentType
?(import org.springframework.test.web.servlet.MockMvc;
)您应该静态导入post(path)或像那样使用=>MockHttpServletRequestBuilder post=MockMvcRequestBuilders.post(path);