单元测试破坏角度js中指令/服务的方法

时间:2015-09-25 21:32:43

标签: angularjs-directive karma-jasmine

我有一些注册观察者的指令和服务。我想确保在调用destroy方法时删除所有观察者。有没有确定是这种情况?

1 个答案:

答案 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。