【发布时间】:2016-04-13 03:45:22
【问题描述】:
当使用 Spring Boot 构建微服务时,它非常容易编写广泛且可读性强的集成测试,并使用 MockRestServiceServer 模拟远程服务请求。
有没有办法使用类似的方法对ZuulProxy 执行额外的集成测试?我想要实现的是能够模拟ZuulProxy 将转发到的远程服务器,并验证我所有的ZuulFitlers 的行为是否符合预期。但是,ZuulProxy 正在使用来自 Netflix 的 RestClient(似乎已弃用?),它自然不使用 RestTemplate 可以由 MockRestServiceServer 重新配置,我目前找不到模拟响应的好方法来自远程服务的代理请求。
我有一个微服务负责处理 API 会话密钥的创建,然后将类似于 API 网关。使用 Zuul Proxy 转发到底层暴露的服务,Zuul Filters 会检测 Session key 是否有效。因此,集成测试会创建一个有效的会话,然后转发到一个假端点,例如“集成/测试”。
可以通过在@WebIntegrationTest 上设置配置属性来指定“集成/测试”是一个新端点,我可以成功模拟所有通过RestTemplate 处理但不是Zuul 转发的服务。
实现模拟前向目标服务的最佳方法是什么?
【问题讨论】:
标签: java spring-boot integration-testing spring-cloud netflix-zuul