如何以合理的期望编写人偶测试?

时间:2019-02-27 15:02:43

标签: angularjs jasmine puppeteer

让我们说我有对象列表和创建按钮。通常,对象创建速度很快,没有加载指示符或其他内容。我很酷的创作测试:

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 :(得分:1)

您可以做的是给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();