gpt4 book ai didi

cypress - 将 should 表达式转换为软断言

转载 作者:行者123 更新时间:2023-12-05 05:38:50 25 4
gpt4 key购买 nike

我有一个复杂的表单,其中包含许多要测试的单独功能,我想遍历整个页面而不会使测试失败。我见过软断言,但无法弄清楚如何让它与 disabled 等属性一起工作。

例如

<input data-id="name"></input>
<input data-id="email"></input>
<input data-id="password" disabled></input>

cy.get('[data-id="name"]').should('not.be.disabled')
cy.get('[data-id="email"]').should('be.disabled') // fails - convert to soft assertion?
cy.get('[data-id="password"]').should('have.attr', 'disabled')

最佳答案

你可以使用 alfonso-presa/soft-assert改变 expect 的工作方式。

这意味着您必须将 .should() 的样式更改为回调版本。

此外,由于当表达式为假时 expect() 不再失败,您将失去重试能力。仅在稳定的 HTML 页面上使用它。

const { proxy, flush } = require("@alfonso-presa/soft-assert");
expect = proxy(expect);

it('tests by soft assert', () => {

cy.get('[data-id="name"]').should($el => expect($el).not.to.be.disabled)

// shows failed in log but test continues
cy.get('[data-id="email"]').should($el => expect($el).to.be.disabled)

cy.get('[data-id="password"]').should($el => expect($el).to.have.attr('disabled'))

cy.then(flush) // flush any errors
})

注意flush() 方法应该添加到 Cypress 命令链中,否则测试在评估之前结束。

关于cypress - 将 should 表达式转换为软断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72850933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com