reactjs - 笑话:测试异步函数
问题描述
我正在尝试使用 Jest 测试异步函数,但我的模拟似乎不想解决 Promise。
工作流.test.js
jest.mock("../../test/__mocks__/workflow");
import {list} from "../../test/__mocks__/workflow"
describe("workflow list api function", () => {
it("should get a list of workflows", async () => {
const expectedListData = {
message: "Successfully retrieved workflow list!",
data: [
{
id: "123",
},
]
};
const listData = await list();
expect(listData.message).not.toBeNull();
expect(listData.message).toBe(expectedListData.message);
expect(listData.data).toBe(expectedListData.data)
});
});
模拟/工作流
import { listData } from "./data";
export const list = () => {
return new Promise((resolve, reject) => {
const data = listData;
if (data) {
resolve(data)
} else {
reject({
error: "List not found..."
})
}
});
};
我不断收到一条错误消息,说“listData.message 未定义”,当我记录“listData”变量时,它也未定义,即使我的“workflow.test.js”文件中的 Promise 应该解析数据列表。
这是我第一次尝试运行一些测试,我只是不确定我做错了什么。我已经看了很多地方试图让这个工作,但我尝试过的一切都没有奏效。只是希望得到一些指示,因为我不确定此时还可以尝试什么。
解决方案
推荐阅读
- c++ - 在 C++ 中定义 boost 库无锁队列时出现声明错误
- powershell - Powershell CSV 插入变量
- spring-boot - Sleuth 显示不正确的 traceId
- python - 包括 QStackedLayout 会打乱布局
- python - 双重问题解决后的支持向量机偏差太大了
- javascript - 如何实现对象数组的接口?
- sql-server - 从 SQL Server 中的 XML 列获取数据
- javascript - 尝试将对象添加到数组时出现意外结果
- jetbrains-ide - 在 JetBrains IDE 中进行 linting 时忽略 yaml 文件
- python - Floyd-Warshall 最多有 k 个边