我正在使用springCloudVersion ='Dalston.RELEASE'将SpringBoot 1.3.2.RELEASE中的多个应用升级到1.5.3。
作为此升级过程的一部分,我现有集成测试中的注释发生了变化:
旧,deprecated方式:
@RunWith(SpringJUnit4ClassRunner.class)
@Unroll
@WebAppConfiguration
@WebIntegrationTest(randomPort = true)
@SpringApplicationConfiguration(classes = TokenServerApplication)
新的升级方式:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = TokenServerApplication)
@EnableWebSecurity
@Unroll
这似乎编译得很好,但我注意到我的各种测试开始破坏,给出了403 Forbidden响应。
这些失败的测试应该要求发送带有有效'x-auth-token'标头的请求。我的服务的响应应该给出403“未经过身份验证”,但我收到的消息不包含“未经过身份验证”的消息(它更通用),此外,应该通过有效令牌传递的测试也将获得403 “d。
我正在使用以下内容来构建我的请求:
@Autowired TestRestTemplate restTemplate
测试大致设置相同:
@Test
void "test valid token"() {
HttpHeaders headers = new HttpHeaders()
headers.set("x-auth-token", tokenIngestExternal)
HttpEntity<String> entity = new HttpEntity<String>(headers)
ResponseEntity<Map> result = restTemplate.exchange("/authenticate", HttpMethod.GET, entity, Map.class)
assertTrue(result.getStatusCode() == HttpStatus.OK)
Map map = result.getBody()
assertTrue map.get('iss').equals("A")
assertTrue map.get('sub').equals("B")
assertTrue map.get('aud').equals("C")
assertTrue map.get('roles').equals("D")
}
在升级到1.5.3并使用最新注释进行集成测试之前,这种基本方法运行良好。
我错过了注释或参数或其他内容吗?什么是有效的?