Spring mvc it,比较有效负载和标头值

时间:2017-06-06 12:04:36

标签: spring spring-mvc testing spring-boot integration-testing

我们对@RestController进行了一些集成测试,并使用一个通用模式来验证Xpath表达式是否存在以及是否设置了Http标头。但我想进一步验证XPath值是否相等或包含在标题中。

mvc.perform(..)
  .andExpect(xpath("Item/@id/").isIn(header("Location")))

这是为了什么,还是我应该创建自己的ResultMatcher

1 个答案:

答案 0 :(得分:0)

org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath(xpathExpress, args)就是你想要的。 例如:

    ResultActions resultActions = mvc.perform(..);
    String location = resultActions.andReturn().getResponse().getHeader("Location");
    resultActions.andExpect(MockMvcResultMatchers.xpath("Item/@id/", null)
            .string(org.hamcrest.Matchers.containsString(location)));

如果您需要按节点进行比较,XMLUnit for Java 2.x会提供更多有用信息Matcher