我有Spring MVC URL在接口中定义(只是为了保存常量),如:
String URL_X = "/my-url/{id:[0-9]*}";
String URL_Y = "/my-url/{id:[0-9]*}/blah-blah";
我有一个替换URL中变量的测试方法:
private static final String REGEX_PARAMETROS_DA_URL = "(\\{[^\\}]*\\})";
protected String replaceParametersOnURL(String urlSpring, String... params) {
String urlAtual = urlSpring;
for (String parametro : params) {
urlAtual = urlAtual.replaceFirst(REGEX_PARAMETROS_DA_URL, parametro);
}
return urlAtual;
}
我正在使用此正则表达式:(\{[^\}]*\})
来匹配变量并替换它。
但现在我有一些网址上有{},我无法找到一个正确的正则表达式来替换我的值变量。
Spring上是否有任何替换PathVariable值的方法,或者任何人都可以帮助我使用这个正则表达式吗?
以此URL为例:
/pessoajuridica/{cnpj:[0-9]{14}}-{slug:[a-zA-Z0-9-]+}/sancoes/resumo
匹配必须为:{cnpj:[0-9]{14}}
和{slug:[a-zA-Z0-9-]+}
答案 0 :(得分:1)
谢谢@Matthew。我没有注意到弹簧测试本身可以做到这一点!
我需要做的就是:
mockMvc.perform(get("/pessoajuridica/{cnpj:[0-9]{14}}-{slug:[a-zA-Z0-9-]+}/sancoes/resumo", var1, var2)) ...