我正在用cypress编写测试用例,我写的每一行都引用cy对象。我的测试代码示例如下所示:
it('does stuff', () => {
cy.visit(startUrl);
cy.get(".new-item-button").click();
cy.url().should('include', url2);
cy.get(".home-link").click();
cy.url().should('include', startUrl);
cy.url().should('not.include', url2);
}
看到所有cy引用使我感到难过。无论如何,我的测试函数中的函数调用要使用不同的调用上下文吗?仅仅删除cy会使javascript查找全局函数,但是无论如何我还是要在cy对象中让javascript查找它们,以便我可以这样写?
it('does stuff', () => {
visit(startUrl);
get(".new-item-button").click();
url().should('include', url2);
get(".home-link").click();
url().should('include', startUrl);
url().should('not.include', url2
}
那会让我感到更快乐。谢谢。
答案 0 :(得分:2)
由于调用父命令会启动新命令,因此您实际上可以执行以下操作:
it('does stuff', () => {
cy.visit(startUrl)
.get(".new-item-button").click()
.url().should('include', url2)
.get(".home-link").click()
.url().should('include', startUrl)
.url().should('not.include', url2)
}
答案 1 :(得分:1)
您可以,如果您没有使用严格模式,但您可能不应该这样做。 JavaScript的with
语句已被弃用,因为它使代码非常不清楚(Douglas Crockford在this article中有详细说明)。
以下是您使用with
的方法:
// NOT RECOMMENDED, and doesn't work in strict mode
with (cy) {
visit(startUrl);
// ...
}
cy.
已经很短了,我会强烈建议继续使用它。很简单,其他人也很容易理解这些代码。