问题描述
当我尝试将图片中的数据提取到我的测试用例中时,我得到了未定义的无法读取属性 'key' 错误信息。
代码: describe('我的第一次测试',() => {
beforeEach(function() {
cy.fixture("DataFile").then((data) => {
this.key = data
})
})
it('Does not do much!',() => {
cy.visit('https://rahulshettyacademy.com/angularpractice/')
cy.get("form input[name='name']").type(this.key.Name)
cy.get("form input[name='email']").type(this.key.Email)
cy.get("#exampleInputPassword1").type(this.login.key.Password)
cy.get('select').select(this.key.Gender)
})
解决方法
要访问 this
的属性,请使用函数而不是箭头函数
it('Does not do much!',function() { // function here gets correct 'this'
cy.visit('https://rahulshettyacademy.com/angularpractice/')
cy.get("form input[name='name']").type(this.key.Name)
cy.get("form input[name='email']").type(this.key.Email)
cy.get("#exampleInputPassword1").type(this.login.key.Password)
cy.get('select').select(this.key.Gender)
})
或者您可以将夹具移近测试(不太理想,但总体上相差不大)
it('Does not do much!',() => {
cy.fixture("DataFile").then((data) => {
cy.visit('https://rahulshettyacademy.com/angularpractice/')
cy.get("form input[name='name']").type(data.key.Name)
cy.get("form input[name='email']").type(data.key.Email)
cy.get("#exampleInputPassword1").type(data.login.key.Password)
cy.get('select').select(data.key.Gender)
})
})