小编Ada*_*m S的帖子

在 jestjs 中模拟嵌套函数

我有一个非常复杂的对象,我用它来模拟 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)

javascript unit-testing method-chaining jestjs

4
推荐指数
1
解决办法
9512
查看次数