Использование чего-то другого, кроме cy.request, для посева данных в Cypress

57
6

Я использую Cypress для сквозного тестирования. В моем beforeEach я использую SDK, который мне предоставили, чтобы засеять данные на сервере (SDK отправляет вызовы API на сервер, но не использует cy.request внутри него). Метод SDK возвращает обещание, поэтому я решил, что могу вернуть обещание так:

beforeEach(() => {
return sdk.createProperty(...);
});

Мой тест затем делает что-то вроде этого:

it('displays a property', () => {
cy.visit('/companies/${appTestData.companyId}/properties');
...the rest is commented out currently...
}

Это действительно работает так, как предполагалось, то есть до тех пор, пока ответ сервера не будет возвращен перед запуском тестов, но я вижу следующее предупреждение в консоли, когда тест действительно выполняется:

Cypress Warning: Cypress detected that you returned a promise in a test, but also invoked one or more cy commands inside of that promise...

Я заметил, что если я изменю свой beforeEach для использования cy.then, предупреждение исчезнет:

beforeEach(() => {
cy.then(() => sdk.createProperty(...));
});

Кажется, что это немного ненужно, и это был какой-то удар в темноте, поэтому я хотел бы знать, есть ли предписанный способ делать то, что мне нужно делать. Я не могу изменить SDK, который я использую для использования cy.request, который, как я полагаю, также предотвратит предупреждение. Благодарю.

спросил(а) 2020-03-25T20:49:13+03:00 5 месяцев, 3 недели назад
1
Решение
58

Наверное, не то, что вы хотите услышать, но могу ли я подтвердить, что использование cy.then(...) является самым стандартным способом ожидания обещания в Cypress, о котором я знаю.

После прочтения вашего вопроса я попытался использовать функции запросов Cypress Network Requests, чтобы дождаться fetch('my/url') в before(), но, похоже, он вообще не обнаруживает запрос.

ответил(а) 2020-03-25T21:06:53.241623+03:00 5 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема