我有一个非常复杂的对象,我用它来模拟 DataTable() 对象以进行测试。
const obj = {
DataTable: () => {
return {
columns: () => {
return {
data: () => {
return {
eq: () => {
return {
indexOf: jest.fn(),
};
},
};
},
visible: () => {
return jest.fn();
},
};
},
};
},
};
Run Code Online (Sandbox Code Playgroud)
在我的测试代码中,我试图监视其中一些函数,但它总是返回未定义。有没有办法模拟深层嵌套函数的返回值?
jest.spyOn(obj.DataTable().columns().data().eq(), 'indexOf').mockReturnValue('test');
console.log(obj.DataTable().columns().data().eq().indexOf()); // returns undefined, should return 'test'
Run Code Online (Sandbox Code Playgroud)