Vad*_*nin 12 java rest unit-testing jax-rs jersey
我试图找到一些手册如何POST使用jersey框架测试方法,只获得GET方法的例子.
这是一个例子:
@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();
}
Run Code Online (Sandbox Code Playgroud)
你能发一些POST方法测试例吗?先感谢您.
Vad*_*nin 19
经过研究,我做到了!
这是我的解决方案,它运作得很好.而且它是集成测试,但我们可以用类似的方式编写单元测试.
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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13651 次 |
| 最近记录: |