什么是 Cypress 别名?
Cypress 别名是一个重要的组成部分,有多种用途。它们如下所示 −
共享上下文
我们必须使用 .as() 为我们必须共享的内容设置别名。要为对象和基元设置别名,请使用 Mocha 上下文对象。可以使用 - this.* 访问 aliased 对象。
Mocha 默认情况下为适用于测试的所有钩子共享上下文,并且别名属性在执行测试后被刷新。
describe('element', () => {
beforeEach(() => {
cy.wrap('eleone').as('x')
})
context('subelement', () => {
beforeEach(() => {
cy.wrap('eletwo').as('y')
})
it('aliases properties', function () {
expect(this.x).to.eq(' eleone ')
expect(this.y).to.eq(' eleone ')
})
})
})
})我们可以通过共享上下文来处理固定装置。我们还可以使用 cy.get()(异步命令)通过 @ 符号访问别名(而不是使用 this.*(同步命令)。
beforeEach(() => {
// alias fixtures
cy.fixture('users.json').as('u'})
it('scenario', function () {
// '@' to handle aliases
cy.get('@u').then((u) => {
// access element argument
const i = u[0]
//verification
cy.get('header').should('contain', u.name)
})
})元素
别名可以与 DOM 元素一起使用,然后可以重复使用。在以下示例中,Cypress 默认情况下引用作为别名 cols 获得的 td 集合。要使用相同的 cols,我们必须使用 cy.get() 命令。
// alias td in tr
cy.get('tr').find('td').as('cols')
cy.get('@cols').first().click()当我们在 cy.get() 中使用 @ 时,Cypress 会搜索当前别名 (cols) 并生成其引用。
路由
别名可以与路由一起使用。它确保应用程序已发出请求,等待服务器响应并访问该请求以进行验证。
cy.intercept('POST', '/users', { id: 54 }).as('u')
cy.get('#btn').click()
cy.wait('@u').then(({ request }) => {
//assertion
expect(request.body).to.have.property('name', 'User')
})
cy.contains('User added')请求
别名可以与请求一起使用。我们可以设置请求的别名,然后使用它的属性。
cy.request('https://jsonplaceholder.cypress.io/comments').as('c')
// other implementations if any
cy.get('@c').should((response) => {
if (response.status === 404) {
// assertion
expect(response).to.have.property('duration')
} else {
// do something else
}
})
})
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP