[英]Jersey Test Framework 2.5 - test POST method
I'm trying to find some manual how to test POST
methods using jersey
framework, only got examples for GET
method. 我试图找到一些手册如何使用jersey
框架测试POST
方法,只有GET
方法的例子。
Here's example: 这是一个例子:
@POST
@Path("add")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response addUser(JAXBElement<User> user) {
int code = userService.addUser(user.getValue());
if (code == 500) {
return Response.status(500).build();
}
return Response.status(code).entity(user).build();
}
Could you please post some POST method test example? 你能发一些POST方法测试例吗? Thank you in advance. 先感谢您。
After research I did it! 经过研究,我做到了!
Here's my solution, it works just fine. 这是我的解决方案,它运作得很好。 And it's rather integration test, but we can write unit tests in similar manner. 而且它是集成测试,但我们可以用类似的方式编写单元测试。
public class RestTest extends JerseyTest{
@Override
protected Application configure() {
return new Your_Resource_Config(); //Your resource config with registered classes
}
//@Before and/or @After for db preparing etc. - if you want integration tests
@Test
public void addUserTest() {
User user = new User();
user.setEmail("user2@mail.com");
user.setName("Jane Doe");
user.getUserRoles().getRoles().add("supertester");
Entity<User> userEntity = Entity.entity(user, MediaType.APPLICATION_XML_TYPE);
target("users/add").request().post(userEntity); //Here we send POST request
Response response = target("users/find").queryParam("email", "user2@mail.com").request().get(); //Here we send GET request for retrieving results
Assert.assertEquals("user2@mail.com", response.readEntity(User.class).getEmail());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.