小编Ave*_*vec的帖子

Spring Boot 1.4.2 @WebMvcTest返回状态404

我使用Spring Boot 1.4.2和Jersey(jax-rs)来创建REST控制器.我已经按照文档介绍了如何测试REST控制器(测试Spring MVC切片).但我的测试返回404,我似乎无法找出原因.这里的控制器已经简化,但问题仍然存在.

我的问题是如何在运行测试时获得200状态?

HealthController.java

@Controller
@Path("/health")
public class HealthController {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Health health() {
        return Health.up().build();
    }
}
Run Code Online (Sandbox Code Playgroud)

运行服务器并进行查询给了我这个

%> curl -i http://localhost:8080/health
HTTP/1.1 200 
X-Application-Context: application
Content-Type: application/json
Content-Length: 21
Date: Sun, 27 Nov 2016 15:22:30 GMT

{
  "status" : "UP"
}% 
Run Code Online (Sandbox Code Playgroud)

HealthControllerTest.java

@RunWith(SpringRunner.class)
@WebMvcTest(HealthController.class)
public class HealthControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void health() throws Exception {
        mockMvc.perform(get("/health").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk()); // 200 expected
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在运行测试时得到的

  .   ____          _            __ _ …
Run Code Online (Sandbox Code Playgroud)

java rest unit-testing jersey spring-boot

7
推荐指数
1
解决办法
4155
查看次数

标签 统计

java ×1

jersey ×1

rest ×1

spring-boot ×1

unit-testing ×1