断言超时和等待方法有什么区别

时间:2019-08-15 03:59:06

标签: javascript testing timeout assertion testcafe

我有一个测试,我想检查一个请求被触发了多少次。我创建了一个请求记录程序,然后在HTML页面加载后立即触发HTTP请求。因此,t.wait(1000)测试的问题是绿色的,但是使用timeout选项表明该测试无效,我也不知道为什么。我的错误在哪里?谢谢。

const logger = RequestLogger(/http:\/\/localhost:8080/, {
  logRequestHeaders: true,
  logResponseBody: true,
  stringifyResponseBody: true,
});
test("after first load loading triggers after end scrolling", async t => {
  await t.expect(logger.requests.length).eql(0, '', { timeout: 1000 });
  // await t.wait(1000);
  await t.expect(logger.requests.length).eql(1, '', { timeout: 7000 });
});

1 个答案:

答案 0 :(得分:2)

根据文档here

  

在TestCafe执行测试操作之前,它将等待XHR和获取请求在3秒钟内完成。在TestCafe收到响应或超时后,测试将继续。

     

如果您希望请求花费更多时间,请使用选择器或带有自定义超时的断言来等待UI反映请求完成。

这意味着您在第一个expect中所做的是将超时从3秒缩短到1秒,也许这就是失败的原因。

使用await t.wait(1000)时,测试将等待1秒钟,然后再继续执行下一行代码,但是默认超时时间(3秒)仍然保留。

相关问题