为什么Cypress.io使用字符串断言类型选择器,有哪些替代方法?
我需要一个e2e测试工具,在我尝试过的工具中,我认为Cypress.io似乎是最好的 我不明白的是,为什么他们在should()子句中使用字符串选择器(我需要我们的测试人员尽可能地轻松,我不认为容易出错的字符串是一种方式): 我成功地使用了这样的东西:为什么Cypress.io使用字符串断言类型选择器,有哪些替代方法?,cypress,Cypress,我需要一个e2e测试工具,在我尝试过的工具中,我认为Cypress.io似乎是最好的 我不明白的是,为什么他们在should()子句中使用字符串选择器(我需要我们的测试人员尽可能地轻松,我不认为容易出错的字符串是一种方式): 我成功地使用了这样的东西: cy.get('.trigger-input-range') .invoke('val', 25) .trigger('change') .get('input[type=range]').siblings('p') .shoul
cy.get('.trigger-input-range')
.invoke('val', 25)
.trigger('change')
.get('input[type=range]').siblings('p')
.should((e) => {
expect(e).to.have.text('25')
});
这至少给了我一些安全性,IDE提供了一些选项,如“have.text”、“have.value”(我计划在这些测试中使用Typescript,所以欢迎任何可能有帮助的建议。这是否有一些副作用?如果没有,我不理解使用这些字符串选择器
还有其他选择吗?
我能把柏树改成这样吗
cy.get('.trigger-input-range')
.invoke('val', 25)
.trigger('change')
.get('input[type=range]').siblings('p')
.shouldHaveText('25')
.shouldHaveValue('25');
.should('have.text','25');
与此类似:
.should(元素=>{
expect(elem).to.have.text('25');
});
它们只是做同一件事的两种方法。较短的方法是使用较长方法的内联方法,但会产生相同的结果
如果您需要类似于.shouldHaveText('25')
的命令,您应该能够通过创建自己的:
Cypress.Commands.add('shouldHaveText'{
主题:对
},(主题,预期文本)=>{
//包装主题并使用.should()以利用自动重试
cy.wrap(主题)。应((元素)=>{
expect(elem).to.have.text(expectedText);
});
});
用法:
cy.get('.someClass').shouldHaveText('25');
这是一个有趣的问题,我自己也经常想知道。但是我还是比较喜欢CyPress。很有趣。你的新命令会有智能吗?也许添加TypSercPT会有帮助。我只记得所有的魔法字符串。但是我会考虑你的答案…我不知道。我怀疑像VS代码之类的东西需要一个EX。这是我的荣幸。
cy.get('.trigger-input-range')
.invoke('val', 25)
.trigger('change')
.get('input[type=range]').siblings('p')
.shouldHaveText('25')
.shouldHaveValue('25');