我有一个测试,我想检查一个请求被触发了多少次。我为请求创建了一个记录器,然后在 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 });
});
根据这里的文档:
在 TestCafe 执行测试操作之前,它会等待 XHR 并在 3 秒内完成获取请求。TestCafe 收到响应或超时超过后,测试将继续。
如果预计请求需要更多时间,请使用具有自定义超时的选择器或断言,以等待 UI 反映请求完成。
这意味着您在第一expect
所做的是将超时从 3 秒缩短到1 秒,也许这就是它失败的原因。
使用await t.wait(1000)
时,测试将等待 1 秒,然后再继续下一行代码,但默认超时(3 秒(仍然存在。