Node.js 无法使用jest在nodejs中模拟类的实例函数(来自类的新实例的函数)

Node.js 无法使用jest在nodejs中模拟类的实例函数(来自类的新实例的函数),node.js,jestjs,mocking,jest-mock-axios,Node.js,Jestjs,Mocking,Jest Mock Axios,在component.js中,需要模拟行: const accessValue = await objValueClass.getValue(); 运行component.test.js时,在console.logaccessValue中出现undefined component.test.js description('**处理程序单元测试**',()=>{ 测试('test1',async()=>{ const{ValueClass}=require('../../ValueClass')

在component.js中,需要模拟行:

const accessValue = await objValueClass.getValue();
运行component.test.js时,在
console.log
accessValue
中出现
undefined

component.test.js

description('**处理程序单元测试**',()=>{
测试('test1',async()=>{
const{ValueClass}=require('../../ValueClass');
jest.mock('../../ValueClass');
const objValueClass=新的ValueClass();
objValueClass.getValue.mockResolvedValue('abcd');
常量{component}=require('../../component');
const res=等待组件();
});
});
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
};

以下是我的单元测试解决方案:

component.test.js

const{ValueClass}=require('./ValueClass');
const component=require(“./component”);
jest.mock('./ValueClass',()=>{
常量值ClassInstance={
getValue:jest.fn(),
};
返回{ValueClass:jest.fn(()=>valueClassInstance)};
});
描述(“**处理器单元测试**”,()=>{
毕竟(()=>{
jest.resetAllMocks();
});
测试('test1',async()=>{
const objValueClass=新的ValueClass();
objValueClass.getValue.mockResolvedValue('abcd');
const res=等待组件();
expect(objValueClass.getValue).toBeCalledTimes(1);
});
});
单元测试结果:

 PASS  src/stackoverflow/65097473/component.test.js (9.297s)
  ** Handler unit tests **
    ✓ test 1 (16ms)

  console.log src/stackoverflow/65097473/component.js:764
    accessValue### abcd

--------------|----------|----------|----------|----------|-------------------|
File          |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
--------------|----------|----------|----------|----------|-------------------|
All files     |      100 |      100 |      100 |      100 |                   |
 component.js |      100 |      100 |      100 |      100 |                   |
--------------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        10.508s

测试中的objValueClass与组件中的实例不同。它应该是
ValueClass.prototype.getValue.mockResolvedValue(…)
。在@EstusFlask中起作用。感谢感谢@slideshowp2