繁体   English   中英

Jest - 模拟一个函数,该函数又定义了一个方法

[英]Jest - Mocking a function that in turn has a method defined on it

我正在转换一些旧的测试以使用Jest,我有一个名为Services.Transactions.get的函数。 通常,您传递一个回调来处理从远程API返回的数据。 在我的测试中,我正在嘲笑它,使用

jest.spyOn(Services.Transactions, 'get').mockImplementation((callback) => { callback(someJsObject); });

到现在为止还挺好。

现在的问题是它又有一个方法Services.Transactions.get.watch 我正在测试的模块使用这两个功能。 一旦我模仿了上面的第一个,我就无法模仿观察者的方法。 我被告知Services.Transactions.get.watch不是一个函数。

我试过了:

  • 使用在其上定义的空监视方法定义函数,并将其用作get的实现。
  • 尝试使用mockImplementation调用替换watch方法

以上都没有奏效。 文件服务来自不是ES6模块,所以做模块级模拟是我宁愿避免的。 我还有其他选择吗?

直截了当的方法怎么样:

const mock = jest.spyOn(Services.Transactions, 'get');
mock.watch = jest.fn();
mock.mockImplementation(...);

暂无
暂无

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

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