AngularJS Jamine测试广播消息只发送了一次



我正在尝试测试boradcase消息只发送了一次

 expect(rootScope.$broadcast.calls.count()).toEqual(1);

代码本身:

 $rootScope.$broadcast("page:done_loading");

所以,测试不起作用。我不确定语法。你能帮忙吗?

首先,您需要设置一个间谍(您没有显示太多代码,因此不确定是否已经显示了)。

例如:

茉莉花2.0:spyOn($rootScope, '$broadcast').and.callThrough();

茉莉1.3:spyOn($rootScope, '$broadcast').andCallThrough();

请注意,and.callThrough()在您的情况下可能是间谍的正确行为。

然后验证它被调用了一次:

Jasmine 2.0:expect($rootScope.$broadcast.calls.count()).toEqual(1);

茉莉1.3:expect($rootScope.$broadcast.callCount).toEqual(1);

演示(Jasmine 2.0):http://plnkr.co/edit/4xeZOzxOuYNvvASY8jTM

最新更新