javascript - 异步函数测试抛出 regeneratorRuntime 错误
问题描述
我正在尝试为异步函数编写测试。
基于在线建议和文档:https ://jestjs.io/docs/asynchronous
我已经尝试了以下所有测试变体。所有测试都出现以下错误。
ReferenceError:未定义 regeneratorRuntime
我从来没有在实际的异步函数中遇到断点。
如果我将此函数设为非异步(仅用于验证测试),则能够很好地编写测试。
我能否得到一些关于我做错了什么的指导。
异步调用是由于调用了这个 cookieStore。
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/CookieStore
需要它,因为我需要 cookie 的到期值。
这是我正在测试的异步功能。
const checkData = async () => {
const cookie = await cookieStore.get('sample');
const {expires} = { ...cookie };
// other logic here which may result in returning a false;
return true;
}
这些是每个测试都抛出相同的上述错误的测试。
describe('do Test', () => {
it('should be false when session data exists', async () => {
const result = checkData();
expect(result).toBe(true);
});
it('should be false when session data exists', async () => {
const result = checkData();
return expect(result).toBe(true);
});
it('the data is peanut butter', done => {
const callback = data => {
expect(data).toBe(true);
done();
};
checkData(callback);
});
it('the data is peanut butter1', () => {
return checkData().then(data => {
expect(data).toBe(true);
});
});
it('the data is peanut butter2', () => {
return expect(checkData()).resolves.toBe(true);
});
it('the data is peanut butter3', async () => {
const data = await checkData();
expect(data).toBe(true);
});
it('the data is peanut butter4', async () => {
await expect(checkData()).resolves.toBe(true);
});
});
解决方案
推荐阅读
- loops - 无限循环正在为链表运行
- sql - 如何重新查询主窗体内的子窗体的组合框?
- php - 如何将嵌套数组转换为节点的平面数组 PHP?
- sql - 选择不存在的位置后更新列
- arrays - C中的二维数组排序
- c++ - 如何在 Mac OS X 上监控缓存未命中?
- oracle - Oracle BI Publisher RTF 模板未在 Excel 输出中显示图像/徽标
- entity-framework-core - Entity Framework Core 5.0.6 迁移脚本不写入输出文件
- rust - 为什么在 Rust 中不允许嵌套的不可变借用?
- discord - 如何在 Discord.js 中制作按钮