Используйте и обновляйте данные более чем в одном тесте в Cypress - PullRequest
0 голосов
/ 03 марта 2020

Я пишу тесты на Cypress и хотел бы получить данные в одном тесте и использовать их в других тестах. В этом случае я создаю объект и хочу использовать идентификатор этого созданного объекта в более поздних тестах.

Fixtures , похоже, отсутствует. Я не могу установить идентификатор объекта в файле stati c, потому что я не знаю его, пока объект не создан. Я не нашел никакой документации, описывающей, как обновить данные в приборе во время выполнения тестов.

Я нашел следующий обходной путь:

describe('Data suite tests', function() {
    let objectId = 0;

    it('Create object', function() {
        cy.createObject(...);
        objectId = /* get id of created object from the resulting URL */
    });

    it('Another test', function() {
        cy.visit('/object/' + objectId);
    });
};

Однако Cypress явно говорит избегайте этого паттерна и используйте вместо него псевдонимы.

Я не могу понять, возможно ли использовать псевдоним для моего варианта использования. Все приведенные примеры описывают получение идентификатора из DOM. В моем случае я получаю это с URL.

Кроме того, во всех случаях использования описывается установка псевдонима в ловушке beforeEach(). Но я не могу этого сделать, потому что я должен получить его из одного из тестов после создания объекта.

Есть ли одобренный способ сделать это с помощью Cypress? Или использование переменной let - единственный возможный обходной путь?

...