2017-10-12 83 views
1

我正在使用wiremock來測試客戶端。一個特別的測試是驗證客戶端發送一個包含逗號分隔值列表的頭。 但是,這些值來自無序集合。所以它可以是first,secondsecond,first,都是valids。Wiremock驗證頭包含許多值通過自定義ValueMatcherStrategy

很遺憾,我找不到任何可用於此的ValueMatchingStrategycontaining只期望一個值。

我試圖建立一個自定義的ValueMatcherStratgey,但從來沒有調用isMatchFor方法。

new ValueMatchingStrategy(){ 
    @Override 
    public ValuePattern asValuePattern() { 
     return new ValuePattern(){ 
      @Override 
      public boolean isMatchFor(String value) { 
       return value.contains("first") && 
         value.contains("second") && 
         value.contains(","); 
      } 
     }; 
    } 
} 

是否有更簡單的方法來驗證標頭是否包含多個值?或者我如何創建自定義匹配器?

回答

1

你看過創建自定義匹配器的文檔嗎? http://wiremock.org/docs/extending-wiremock/#custom-request-matchers

+0

我正在嘗試使用舊的WireMock版本。 'com.github.tomakehurst.wiremock.matching.RequestMatcherExtension'工作正常。你必須通過'verify(RequestPatternBuilder.forCustomMatcher(new RequestMatcherExtension(){...}));'(這是沒有很好的文檔) –

+0

現在它將被記錄。 https://github.com/tomakehurst/wiremock/pull/777 –