Java 如何使用rest-assured将头位置响应与正则表达式匹配

Java 如何使用rest-assured将头位置响应与正则表达式匹配,java,regex,rest,hamcrest,rest-assured,Java,Regex,Rest,Hamcrest,Rest Assured,我正在使用testng进行一个测试url重定向的放心测试。我想匹配头位置响应以匹配正则表达式 我试图创建以下方法,但我没有找到任何使用Hamcrest matcher的正则表达式匹配器。我想使用一些方法,如方法中使用的匹配(或任何其他选项) public Response matchRedirect(String url, Integer statusCode, String urlRegex) { return given().

我正在使用testng进行一个测试url重定向的放心测试。我想匹配头位置响应以匹配正则表达式

我试图创建以下方法,但我没有找到任何使用Hamcrest matcher的正则表达式匹配器。我想使用一些方法,如方法中使用的匹配(或任何其他选项)

public Response matchRedirect(String url, Integer statusCode, String urlRegex) {
        return  
        given().
                redirects().follow(false).and().redirects().max(0).
         expect(). 
                 statusCode(statusCode). 
                 header("Location", **matches**(urlRegex)). 
         when().get(url); 
}
我从使用类到使用我的方法

import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;

public class RegexMatcher extends BaseMatcher<Object>{
  private final String regex;

  public RegexMatcher(String regex){
      this.regex = regex;
  }

  public boolean matches(Object o){
      return ((String)o).matches(regex);

  }

  public void describeTo(Description description){
      description.appendText("matches regex=");
  }

  public static RegexMatcher matches(String regex){
      return new RegexMatcher(regex);
  }
}
import org.hamcrest.BaseMatcher;
导入org.hamcrest.Description;
公共类RegexMatcher扩展了BaseMatcher{
私有最终字符串正则表达式;
公共正则表达式匹配器(字符串正则表达式){
this.regex=regex;
}
公共布尔匹配(对象o){
返回((字符串)o).matches(正则表达式);
}
公共无效说明(说明){
description.appendText(“matches regex=”);
}
公共静态RegexMatcher匹配(字符串regex){
返回新的RegexMatcher(regex);
}
}

您可以创建自定义匹配器:

import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;

public class CustomMatchers {

    public static Matcher<String> matchesRegex(final String regex) {
        return new BaseMatcher<String>() {

            public boolean matches(final Object item) {
                return ((String) item).matches(regex);
            }

            public void describeTo(final Description description) {
                description.appendText("should match regex: " + regex);
            }
        };
    }

}
尝试
匹配模式(urlRegex)
。看见也许,这会有所帮助。
public Response matchRedirect(String url, Integer statusCode, String urlRegex) {
        return  
        given().
                redirects().follow(false).and().redirects().max(0).
        expect(). 
                statusCode(statusCode). 
                header("Location", CustomMatchers.matchesRegex(urlRegex)). 
        when().get(url); 
}