Ошибка извлечения данных из прибора: не удается прочитать ключ свойства undefined
Когда я попытался извлечь данные из картинок в свой тестовый пример, я получил сообщение об ошибке Cannot read property of undefined.
Код: описать ('Мой первый тест', () => {
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)
})
Ошибка: не удается прочитать ключ свойства undefined
1 ответ
Решение
Чтобы получить доступ к свойствам
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)
})
})