[英]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
不是一个函数。
我试过了:
以上都没有奏效。 文件服务来自不是ES6模块,所以做模块级模拟是我宁愿避免的。 我还有其他选择吗?
直截了当的方法怎么样:
const mock = jest.spyOn(Services.Transactions, 'get');
mock.watch = jest.fn();
mock.mockImplementation(...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.