我有一个测试,我想检查一个请求被触发了多少次。我创建了一个请求记录程序,然后在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 });
});
答案 0 :(得分:2)
根据文档here:
在TestCafe执行测试操作之前,它将等待XHR和获取请求在3秒钟内完成。在TestCafe收到响应或超时后,测试将继续。
如果您希望请求花费更多时间,请使用选择器或带有自定义超时的断言来等待UI反映请求完成。
这意味着您在第一个expect
中所做的是将超时从3秒缩短到1秒,也许这就是失败的原因。
使用await t.wait(1000)
时,测试将等待1秒钟,然后再继续执行下一行代码,但是默认超时时间(3秒)仍然保留。