【发布时间】:2025-12-13 02:45:01
【问题描述】:
我对 JS 很陌生,但我正在努力学习。事实上,我试图模拟快递。这是我的基类(为了测试目的而删减了):
import compression from 'compression';
import express from 'express';
export default class Index{
constructor(){}
spawnServer(){
console.log(express());
let app = express();
app.use(STATIC_PATH, express.static('dist'));
app.use(STATIC_PATH, express.static('public'));
etc...
}
}
这是我试图实现的测试,在一个单独的测试文件中......:
test('should invoke express once', () =>{
index.spawnServer();
expect(mockExpressFuncs().use.mock.calls.length).toBe(3);
})
我的问题是 - 我如何让测试覆盖被测类的要求 - 这甚至可能吗?我想让我的索引使用 express 的模拟版本,包括 express() 和 express.require。
我确实阅读了文档,并尝试了类似的内容:
const mockFunction = function() {
return {
use: useFn,
listen: jest.fn()
};
};
beforeEach(() => {
jest.mock('express', () => {
return mockFunction;
})
express = require('express');
});
但这不起作用 - 我做错了什么? :(
谢谢。
【问题讨论】:
标签: node.js unit-testing express jestjs