[英]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.