MockMvc集成
如果你想使用AssertJ的支持,但已经投资于原始的MockMvc API,那么MockMvcTester提供了几种与之集成的方法。
如果你有自己的RequestBuilder实现,你可以使用perform来触发请求的处理。下面的示例展示了如何使用原始API来构造查询:
// Static import on MockMvcRequestBuilders.get
assertThat(mockMvc.perform(get("/hotels/{id}", 42)))
.hasStatusOk();
同样地,如果你创建了自定义的匹配器,并且在与MockMvc的.andExpect特性一起使用时,你也可以通过.matches来使用它们。在下面的例子中,我们用MockMvc提供的ResultMatcher实现来重写前面的例子,以断言状态码:
// Static import on MockMvcResultMatchers.status
assertThat(mockMvc.get().uri("/hotels/{id}", 42))
.matches(status().isOk());
MockMvc 还定义了一个 ResultHandler 接口,允许你对 MvcResult 执行任意操作。如果你实现了这个接口,就可以使用 .apply 来调用它。