【发布时间】:2021-08-29 21:56:54
【问题描述】:
我有一个依赖项,我试图用 jest.mock() 方法模拟,但它返回 undefined。
我已经检查过它是一个有效的导入,因为我的测试使用依赖项而不是模拟运行,但不知何故它不断返回 undefined
我的 .spec.ts 文件如下所示:
import validator from 'validator';
jest.mock('validator', () => ({
isEmail(): boolean {
return true;
},
}));
describe('EmailValidator Adapter', () => {
test('Should return false if validator returns false', () => {
const sut = new EmailValidatorAdapter();
jest.spyOn(validator, 'isEmail').mockReturnValueOnce(false);
const isValid = sut.isValid('invalid_email@mail.com');
expect(isValid).toBe(false);
});
});
我的 jest.config.js 文件如下所示:
module.exports = {
roots: ['<rootDir>/src', '<rootDir>/node_modules'],
collectCoverageFrom: [
'<rootDir>/src/**/*.ts',
'!<rootDir>/src/**/*-protocols.ts',
'!**/protocols/**',
],
moduleDirectories: ['node_modules', '<rootDir>'],
coverageProvider: 'babel',
coverageDirectory: 'coverage',
testEnvironment: 'node',
transform: {
'.+\\.ts': 'ts-jest',
},
};
如你所见,我已经将我的 node_modules 文件夹放在了 jest 配置文件的 roots 数组中
【问题讨论】:
标签: node.js typescript unit-testing jestjs ts-jest