我们有一个场景,我们在app.local:3000
上运行我们的应用程序,通常在app.local:3000/api
调用端点。
在源代码中,请求是使用带有相对URL /api
的Javascript进行的(即app.local:3000不在源代码中)。
在测试期间,我们希望捕获/模拟/存根所有对app.local:3000/api
的请求,而是将其指向我们称为mock.local:3000/api
的模拟服务器。
Geb或Spock是否可以捕获和重新映射出站请求?
js.exec
覆盖html基本标记,但脚本执行得太晚答案 0 :(得分:1)
不,不可能仅使用Spock或Geb重新映射出站请求。
在我自己的测试套件中,我使用dockerd nginx("nginx" from official repository)作为代理,由testcontainers-spock控制。
摘自nginx config
location /api {
# rewrite path
rewrite /api /api-on-mock break;
# proxy to the mock
proxy_pass http://mock;
}
location @other {
proxy_pass https://original;
}
然后我们针对代理运行所有测试。
我听过很多关于betamax的好事,但我自己没有用过它。