2017-06-06 20 views
0

Xpath式が存在し、Httpヘッダーが設定されていることを確認する共通のパターンを持つ@RestControllerを超えるいくつかの統合テストがあります。しかし、さらに進んで、XPath値が等しいかヘッダーに含まれていることを確認したいと思います。Spring mvc it、ペイロードとヘッダーの値を比較する

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

これは何か、または自分で作成する必要がありますかResultMatcher

答えて

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は、より多くのusefule Matcherを提供しています。

+0

それは素晴らしいですが、 'header(String)' methdoは何を使用していますか? –

+0

更新された回答を参照してください。 'MvcResult.getResponse()。getHeader(headerName)'でレスポンスヘッダの値を取得できます。 –

関連する問題