清除手动模拟笑话

时间:2019-02-22 03:41:29

标签: node.js jestjs

我正在为模块使用手动模拟。我想清除手动模拟中的模拟功能,然后模拟为其返回新值。我怎样才能做到这一点?我尝试了很多方法,但是它总是在手动模拟中返回值。 我在beforeEach中使用jest.clearAllMocks()jest.resetAllMocks()并使用mockReturnValue来模拟该函数的新值,但它不会改变。 这是我的手动模拟

const firebase = {};
firebase.storage = {
  bucket: jest.fn(),
  upload: jest
    .fn()
    .mockResolvedValue([
      { getSignedUrl: jest.fn().mockResolvedValue(["link"]) }
    ]),
  file: _ => ({
    delete: jest.fn()
  })
};
module.exports = firebase;

我得到了值link,但是我无法在单元测试中模拟其他值

1 个答案:

答案 0 :(得分:0)

您需要使用其中之一作为特定的模拟:

有两种方法可以创建mockFn实例:

#include <commonInterface>
class Example {
    private:
        int val;
    public:
        void my_function() {
            commonInterface(...);
        }
};

或导入一个模拟:

const mockFn = jest.fn()