Как написать тест кукловода с разумным ожиданием? - PullRequest
0 голосов
/ 27 февраля 2019

Допустим, у меня есть список объектов и кнопка создания.И обычно объекты создаются быстро, нет индикатора загрузки или чего-то еще.Мой крутой тест создания:

const items = await page.$$('.item');
const itemsCount = items.length;
await page.click('#create-btn');
await page.waitFor((c) => document.querySelectorAll('.item').length === c, {}, itemsCount + 1);

Это работает (может иметь некоторые опечатки ...), но, как вы видите, здесь нет «ожиданий», потому что это waitFor конструкция.Это нормально?

(В настоящее время я переписываю не асинхронные тесты транспортира для кукловода и немного сбит с толку, что в большинстве ситуаций мне нечего ожидать)

1 Ответ

0 голосов
/ 27 февраля 2019

Что вы можете сделать, это дать waitFor тайм-аут и затем убедиться, что у вас нет ошибок:

let error;
await page.waitFor(
    (c) => document.querySelectorAll('.item').length === c, {}, 
    {timeout: 500}, /*Let's give it half a sec*/
    itemsCount + 1).catch(e => error = e);
assert(error).toBeNull();
...