lon*_*nix 5 node.js express typescript jestjs
在我的测试代码中,我想模拟router:
import * as express from "express";
const router = express.Router(); // I want to mock this
router.route(...).post(...);
router.route(...).get(...);
Run Code Online (Sandbox Code Playgroud)
在我的测试中:
import * as express from "express";
test("foo", () => {
jest.mock("express", () => {
Router: () => jest.fn()
});
// ...test stuff
});
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我究竟做错了什么?
模块模拟应该在导入之前。如果这种情况发生在顶层,babel-jest转换会自动放置jest.mock在import. 如果是嵌套的,则不会发生这种情况jest.mock。
它应该是:
import * as express from "express";
jest.mock("express", () => {
Router: () => jest.fn()
});
...
Run Code Online (Sandbox Code Playgroud)
或者:
test("foo", () => {
jest.mock("express", () => {
Router: () => jest.fn()
});
const express = require('express');
// ...test stuff
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7146 次 |
| 最近记录: |