最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

嘲笑express.Router()

运维笔记admin12浏览0评论

嘲笑express.Router()

嘲笑express.Router()

在我的测试代码中,我想模拟router

import * as express from "express";

const router = express.Router();    // I want to mock this
router.route(...).post(...);
router.route(...).get(...);

在我的测试中:

import * as express from "express";

test("foo", () => {
  jest.mock("express", () => {
    Router: () => jest.fn()
  });
  // ...test stuff
});

但是那不起作用。我在做什么错?

回答如下:

模块模拟应该在导入之前。如果这发生在顶级babel-jest上,则转换会自动将jest.mock置于import之上。如果嵌套jest.mock,则不会发生这种情况。

应该是:

import * as express from "express";

jest.mock("express", () => {
  Router: () => jest.fn()
});

...

或:

test("foo", () => {
  jest.mock("express", () => {
    Router: () => jest.fn()
  });

  const express = require('express');
  // ...test stuff
});

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论