小编Bil*_*urr的帖子

在 Cypress 中使用 API 调用时如何避免 .then() 嵌套?

我和我的团队正在尝试找到一种更易读的方法来处理 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)

您有什么想法可以在不进入金字塔的情况下处理这种逻辑吗?提前致谢!

javascript automated-tests e2e-testing cypress

5
推荐指数
1
解决办法
2269
查看次数

在 Cypress 上的 Json 文件中使用环境变量

我想知道是否有办法使用环境变量?

我导出这个变量:

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)

environment-variables cypress

3
推荐指数
1
解决办法
546
查看次数