开玩笑:测试异步功能

时间:2020-04-30 22:43:17

标签: reactjs mocking jestjs

我正在尝试使用Jest测试异步功能,但是我的模拟似乎不想解决Promise。

workflow.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应该解析数据列表,它也未定义

这是我第一次尝试运行一些测试,但我不确定自己做错了什么。我看过很多地方都试图使它起作用,但是我尝试过的一切都没有起作用。只是希望获得一些指示,因为我不确定此时还可以尝试什么。

0 个答案:

没有答案