Groovy 如何从用Geb/Spock编写的测试中捕获/模拟出站请求?
我们有一个场景,我们在app.local:3000上运行应用程序,通常在app.local:3000/api上调用端点 在源代码中,请求是通过Javascript发出的,Javascript具有相对urlGroovy 如何从用Geb/Spock编写的测试中捕获/模拟出站请求?,groovy,spock,geb,Groovy,Spock,Geb,我们有一个场景,我们在app.local:3000上运行应用程序,通常在app.local:3000/api上调用端点 在源代码中,请求是通过Javascript发出的,Javascript具有相对url/api(即app.local:3000不在源代码中) 在测试期间,我们希望捕获/mock/stub对app.local:3000/api的所有请求,并将其指向我们称之为mock.local:3000/api的模拟服务器 Geb或Spock是否可以捕获并重新映射出站请求 我们不能修改实现代码(
/api
(即app.local:3000不在源代码中)
在测试期间,我们希望捕获/mock/stub对app.local:3000/api
的所有请求,并将其指向我们称之为mock.local:3000/api
的模拟服务器
Geb或Spock是否可以捕获并重新映射出站请求
- 我们不能修改实现代码(有100条不同的代码到达端点,都使用相对链接)
- 我在Geb中尝试了baseUrl,但它似乎没有改变出站请求
- 我尝试使用
覆盖html基本标记,但脚本执行得太晚js.exec
location /api {
# rewrite path
rewrite /api /api-on-mock break;
# proxy to the mock
proxy_pass http://mock;
}
location @other {
proxy_pass https://original;
}
然后,我们对代理运行所有测试
我听说过很多关于它的好东西,但我自己没有用过。我很难理解这是一个Geb或Spock问题。那么,您是否可以分享一个(“M”表示最小)复制所描述的行为?有什么可以测试的吗?非常感谢你。顺便说一句,模拟应该可以在普通URI下访问,只需替换普通API即可。那么你就不需要任何黑色的重路由魔法了。路由器或门面不是模拟的。这更像是一种间谍行为。