2017-10-12 86 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 –