我正在用MockMvc测试一个端点。这个端点在末尾做了一个重定向,所以它在位置头中设置了重定向URL。这个URL有几个参数,所以得到的重定向URL如下:
https://platform:8080/auth?scope=openid&response_type=id_token&response_mode=form_post&prompt=none&client_id=toolid&redirect_uri=https://localhost:8080/tool/token/receiver&login_hint=loginHint&state=1d73c90f-fe03-47dc-9e28-ed416fad7773&nonce=7b5e7240-161e-4d78-8e32-54923c9ce04a
我想检查至少9个参数是否存在。我的想法如下:
mockMvc.perform(get(OIDC_INIT_FLOW_ENDPOINT)
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.params(initFlowRequestParams))
.andExpect(status().isFound())
.andExpect(header().exists(LOCATION))
.andExpect(header().string(LOCATION, contains("openId")));
这段代码因为最后一个“andExpect”而无法工作,但它显示了我的意图。我如何才能实现我的目标?
1条答案
按热度按时间gcuhipw91#
尝试使用:
我的直觉是你正在使用的
contains
方法是一个Mockito参数匹配器,这会导致string()
match方法的错误重载。你想要使用的重载需要一个Hamcrest匹配器。