@WebMvcTest内容为空

时间:2016-12-06 15:18:53

标签: spring spring-boot spring-test-mvc springmockito

我已经阅读了this Q&A,但它没有解决问题。我正在使用Spring Boot 1.4.2.RELEASE,我正在尝试加速我的测试。到目前为止,我已经使用@SpringBootTest并且我正在测试将这些更简单的测试切换到@WebMvcTest

我的控制器有以下方法响应GET请求。

public ResponseEntity<MappingJacksonValue> fetchOne(@PathVariable Long id, @RequestParam(value = "view", defaultValue = "summary", required = false) String view) throws NotFoundException {
    Brand brand = this.brandService.findById(id);

    if (brand == null) {
        throw new NotFoundException("Brand Not Found");
    }

    MappingJacksonValue mappingJacksonValue = jsonView(view, brand);
    return new ResponseEntity<>(mappingJacksonValue, HttpStatus.OK);
}

我的测试看起来像这样:

@RunWith(SpringRunner.class)
@WebMvcTest(BrandController.class)
public class BrandSimpleControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private BrandService brandService;

    @Test
    public void testExample() throws Exception {
        Brand brand = new Brand(1l);
        brand.setName("Test Name");
        brand.setDateCreated(new Date());
        brand.setLastUpdated(new Date());

        when(this.brandService.findById(1l)).thenReturn(brand);

        this.mockMvc.perform(get("/api/brands/1").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.name", is("Test Name")));
    }
}

当我运行此测试时,我在内容中得不到任何回复。我没有做任何与this guide明显不同的事情,所以不确定我缺少什么。

我应该注意,使用完全相同控制器的@SpringBootTest可以正常工作。

0 个答案:

没有答案