繁体   English   中英

开玩笑-模拟使用回调的函数

[英]Jest - mocking a function that uses callbacks

我无法嘲笑上班。 如果我提供的只是一个方法调用的模拟实现,那么它将起作用。 但是,如果我将其替换为模拟回调实现,它将停止工作。 我究竟做错了什么?

// Module.js
export default class Module {
  static navigate(payload, callback) { ... }
}

// setupJest.js
jest.mock('../src/Module', () => ({
  navigate: jest.fn(console.log('test'))                    // works great
  navigate: jest.fn((payload, callback) => { callback() } ) // does NOT work
}));

console.log('test')起作用的唯一原因是因为它在您定义模拟时执行,而不是在调用navigate()时执行。

只要你确信你的代码调用navigate()这我不知道它是什么),那么你并不真的需要jest.fn()

jest.mock('../src/Module', () => ({                    
  navigate(payload, callback){ 
    console.log('is this really running?')
    callback();
  })
}));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM