【发布时间】:2020-03-16 11:45:18
【问题描述】:
我试图在我的测试文件中要求一个模块,但是当我将它导出为默认模块时,我不知道该怎么做。我有以下代码:
server.ts
import { MyClass } from './myClass';
/* Other code here */
const server = app.listen(port, () => {
console.log('Started');
});
export default server;
这使用 webpack 构建得非常好。我导出服务器是因为我希望能够在我的规范文件中对其进行测试。我尝试在我的测试文件中这样做(使用 mocha):
testFile.ts
describe('Express Server', () => {
let server: any;
beforeEach(() => {
delete require.cache[require.resolve('./server.ts')];
server = require('./server.ts');
});
afterEach((done: any) => {
server.close(done);
});
it('sample test', (done: any) => {
done();
});
});
当然,以上不是测试任何东西。但这没关系,因为它在每个之前都会抛出一个错误:SyntaxError: Unexpected token {
如何要求我的服务器模块?我需要能够在每次测试之前重置需求。
【问题讨论】:
标签: javascript node.js typescript ecmascript-6 mocha.js