Cypress 简明教程
Cypress - Aliases
Cypress 别名是一个重要的组件,有多种用途。这些用途如下所列 −
Sharing Context
我们必须使用 .as() 来标记我们必须共享的内容。要标记对象和基元,Mocha 上下文对象被使用。可以用 this.* 访问别名对象。
默认情况下,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)
})
})
Requests
别名可以与请求一起使用。我们可以标记一个请求并稍后使用它的属性。这可以按如下方式完成 −
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
}
})
})