我正在尝试测试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