在Jest中模拟服务

时间:2020-02-17 20:25:31

标签: reactjs jestjs

我正在尝试遵循有关Jest的教程。我正在尝试进行一个包括我的REST服务的模拟的测试。根据教程,我需要在src文件夹的同一级别上添加一个名为嘲笑的文件夹(前后带有两个下划线-SO删除此编辑器中的下划线)。在该文件夹中,创建一个与REST服务同名的const:

const CrawlService = jest.fn(() => 42);

现在在我的测试中,我有以下内容:

import { CrawlService } from "../../../services/CrawlService";
import "regenerator-runtime/runtime";

describe("CardsButtonContainer", () => {
  it("dsfsdf", async () => {
    var jobsResult = await CrawlService.getJobs(0, 1, 1, 10, 0);
  });
});

我期望Jest将用模拟服务替换我的REST服务,我是否在这里误解了?我收到以下错误:

请求失败,状态码为404

似乎调用了我的REST服务,而不是被嘲笑的服务。

我想我必须以某种方式添加getJobs函数,但是我不确定从类中获取函数时该怎么做?欢迎任何指针。

我正在尝试遵循以下示例: enter image description here

1 个答案:

答案 0 :(得分:0)

您在屏幕快照中显示的示例模拟了整个isomorphic-fetch模块。建议您改用fetch-mocknock之类的库。两者都提供了一个API,可让您自定义响应以进行测试。