我有下一个代码:
async function(paramA?: string): Promise<void> {
if (paramA === undefined) {
paramA = this.randomString();
}
this.funnel.loginFunnel(Status.Pending);
await this.tracker.flush();
this.service.call(this.name, paramA, code);
}
我希望测试loginFunnel是否在状态为挂起时调用,服务是否在paramA时调用,但此类在构造函数中初始化:
constructor(params: Params) {
this.tracker = new Tracker(params);
this.service = new Service(params, this.tracker);
}
那么我怎么能用笑话来监视呢?,这只是javascript,而不是React或类似的。
我尝试了很多东西,但我不知道如何...
最后一次尝试是这样的,从他的路径导入Tracker类......
jest.mock('../tracker');
service.call();
expect(Tracker).toHaveBeenCalledTimes(1);
但我从测验中得到了这样的答案:
expect(received).toHaveBeenCalledTimes(expected)
Matcher error: received value must be a mock or spy function
Received has type: function
Received has value: [Function Tracker]
1条答案
按热度按时间6jjcrrmo1#
我明白你的意思。它很复杂,我最后创建了这个代码片段,它可以监视整个类,包括它的构造函数。它的用法也很简单,你可以把这个片段添加到一个文件中,然后在需要的时候导入它。
下面是代码(typescript/ES6):
用法示例:
希望它能对你和其他人有所帮助。