簡體   English   中英

Cypress 測試通過,不等待 cy.request()

[英]Cypress test passes and does not wait for cy.request()

在我的一個測試中,我需要發出兩個請求(第二個請求取決於第一個響應),然后做出一些斷言。 問題是測試在獲得服務器響應之前通過

測試文件

it('My test', () => {
  makeReqs().then((res)=> {
    console.log(res);
    someAssertions
  })
})

請求函數

function first() {
  return Promise((resolve) => {
   something
   resolve('response')
  })
}

makeReqs() {
  return new Cypress.Promise((resolve) => {
    first().then((res) => {
      //here I use res in resObj
      cy.request({reqObj}).then(response => resolve(response.data))
    })
  }
}

有人能幫我嗎? 異步 Cypress 仍然存在一些問題

在 Cypress 測試中使用 promise/resolve 時,添加 Mocha done()方法以指示測試何時完成。

賽普拉斯在它自己的隊列上監控承諾,但您沒有將 promise 包裝在命令中,因此它無法判斷測試何時完成。

it('waits for done', (done) => {
  const promise = makeReqs()
  promise.then((data) => {
    //test the data
    done()
  })
})

或者在測試中添加 async/await,或者包裹在自定義命令中以允許 Cypress 監控 promise。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM