【发布时间】:2021-03-13 18:52:00
【问题描述】:
在component.js中,需要mock一行:
const accessValue = await objValueClass.getValue();
在运行 component.test.js 时,console.log accessValue 以 undefined 的形式出现
component.test.js
describe('** Handler unit tests **', () => {
test('test 1', async () => {
const { ValueClass } = require('../../ValueClass');
jest.mock('../../ValueClass');
const objValueClass = new ValueClass();
objValueClass.getValue.mockResolvedValue('abcd');
const { component } = require('../../component');
const res = await component();
});
});
component.js
const { ValueClass } = require('../../ValueClass');
const component = async () => {
const objValueClass = new ValueClass();
const accessValue = await objValueClass.getValue();
console.log('accessValue###', accessValue);
}
module.exports = component;
ValueClass.js
class ValueClass {
async getValue() {
const a = 'a';
const b = 'b';
return a+b;
}
}
module.exports = {
ValueClass
};
【问题讨论】:
-
测试中的 objValueClass 与组件中的实例不同。应该是
ValueClass.prototype.getValue.mockResolvedValue(...)。 -
工作@EstusFlask。谢谢
标签: node.js jestjs mocking jest-mock-axios