Adr*_*atu 0 unit-testing jasmine angularjs
我正在使用Jasmine来测试我的Angular应用程序.如果使用类似的方法调用函数的方法,则很容易测试:
spyOn($rootScope, "$emit");
expect($rootScope.$emit).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)
但我无法找到一种方法来检查函数何时被调用(没有方法),例如我正在使用$anchorScroll(); 在一个控制器,我不知道在哪里将上述代码应用于这个人.我已经看到了他们使用的一些Jasmine示例expect(window.myFunction()).toHaveBeenCalled(),但这不适用于Angular的DI.
我现在不能自己尝试,但也许你可以注入一个模拟$anchorScroll而不是?
var $anchorScroll = jasmine.createSpy('anchorScroll');
$controller('MyCtrl', {
$anchorScroll: $anchorScroll
});
expect($anchorScroll).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)
这应该只是创建一个空白的间谍,一个将采取任何参数,除了跟踪测试使用的调用之外什么都不做.
| 归档时间: |
|
| 查看次数: |
2597 次 |
| 最近记录: |