После непродолжительной работы с Cypress я заметил странное поведение с cy.wrap ().При переносе строки внутрь перед хуком указанная строка доступна во всех дальнейших тестах, но объект будет доступен только в первом тесте, а в остальных из них будет неопределенный результат.
Я пробовал оборачивать тесты контекстом (), который работал, но излишне забил пользовательский интерфейс дерева тестов кипариса.
Без контекста:
describe('Wrap test', function () {
before(function () {
console.log('Before');
cy.wrap('string').as('string');
cy.wrap({ object: true }).as('object');
});
it('Test 1', function () {
console.log('Test 1');
console.log(this.string); // 'string'
console.log(this.object); // { object: true }
});
it('Test 2', function () {
console.log('Test 2');
console.log(this.string); // 'string'
console.log(this.object); // undefined
});
});
С контекстом:
describe('Wrap test', function () {
before(function () {
console.log('Before');
cy.wrap('string').as('string');
cy.wrap({ object: true }).as('object');
});
context('Context', function () {
it('Test 1', function () {
console.log('Test 1');
console.log(this.string); // 'string'
console.log(this.object); // { object: true }
});
it('Test 2', function () {
console.log('Test 2');
console.log(this.string); // 'string'
console.log(this.object); // { object: true }
});
})
});
Я хотел бы смоделировать объект перед хуком, а затем использовать его в нескольких тестах.Я думал о преобразовании указанного объекта в формат JSON, так как он будет доступен для всех тестов.Будем рады услышать мнения более опытных людей о представленном сценарии.