我有一些注册观察者的指令和服务。我想确保在调用destroy方法时删除所有观察者。有没有确定是这种情况?
答案 0 :(得分:1)
首先,我相信你应该在destroy方法上创建一个间谍,只是为了确保它被调用。
spyOn(YourService, 'destroy').and.callThrough();
expect(YourService.destroy).toHaveBeenCalled();
因此,这确保您的destroy函数已被调用,现在对于观察者部分,您可以使用此StackOverflow答案(https://stackoverflow.com/a/18526757/2483389)或此博客条目(https://medium.com/@kentcdodds/counting-angularjs-watchers-11c5134dc2ef)中描述的代码。
这些提供了计算您当前使用的观察者数量的方法。在调用destroy方法之后,你应该期望它为0。