我和我的团队正在尝试找到一种更易读的方法来处理 Cypress 中的依赖 API 调用。现在我们有一些类似这样的代码:
// nested code
cy.request('GET', myUrl).its('body').then(res => {
cy.request('GET', res).its('body').then(subRes => {
cy.request('GET', subRes).its('body').then(subSubRes => {
expect(subSubRes, myMessage).to.eq(myEvaluation);
})
})
})
Run Code Online (Sandbox Code Playgroud)
我们也考虑过这个解决方案,但我认为我们在可读性方面并没有获得太多。
// less nested code?
let response;
let subResponse;
cy.request('GET', myUrl).its('body').then(res => {
response = res;
})
cy.then(() => {
cy.request('GET', response).its('body').then(subRes => {
subResponse = subRes;
})
})
cy.then(() => {
cy.request('GET', subResponse).its('body').then(subSubRes => {
expect(subSubRes, myMessage).to.eq(myEvaluation);
})
})
Run Code Online (Sandbox Code Playgroud)
您有什么想法可以在不进入金字塔的情况下处理这种逻辑吗?提前致谢!
我想知道是否有办法使用环境变量?
我导出这个变量:
export CYPRESS_USER_ID='UserID'
Run Code Online (Sandbox Code Playgroud)
我想在我的配置文件(dev.json)中看到它:
{
"baseUrl": "https://url.com",
"viewportWidth": 1280,
"viewportHeight": 720,
"env": {
"UserID": "${CYPRESS_USER_ID}",
"environment": "dev"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在这样运行我的测试:
npx cypress open --env configFile=dev
Run Code Online (Sandbox Code Playgroud)