Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing spyOn多个$broadcasts或忽略其中一个_Unit Testing_Angularjs - Fatal编程技术网

Unit testing spyOn多个$broadcasts或忽略其中一个

Unit testing spyOn多个$broadcasts或忽略其中一个,unit-testing,angularjs,Unit Testing,Angularjs,我有一些代码可以监听广播,当它接收到广播时执行一些操作,然后自己广播一些东西 我如何构建一个单元测试来监听第二次广播?我可以同时测试这两个,或者忽略第一个,但目前spyOn只捕获第一个广播,即我在单元测试中触发的广播。找到了:您可以执行以下操作: spyOn($scope, '$broadcast').andCallThrough(); 这样,两个呼叫都会出现,并且可以预期: expect($scope.$broadcast).toHaveBeenCalledWith('triggerApp'

我有一些代码可以监听广播,当它接收到广播时执行一些操作,然后自己广播一些东西


我如何构建一个单元测试来监听第二次广播?我可以同时测试这两个,或者忽略第一个,但目前spyOn只捕获第一个广播,即我在单元测试中触发的广播。

找到了:您可以执行以下操作:

spyOn($scope, '$broadcast').andCallThrough();
这样,两个呼叫都会出现,并且可以预期:

expect($scope.$broadcast).toHaveBeenCalledWith('triggerApp');
expect($scope.$broadcast).toHaveBeenCalledWith('appResponse');

你想测试什么?期望是什么?您只是想测试第二次
$broadcast
是否发生?或者什么?对,就是这样