2014-06-25 65 views
0

我使用茉莉来单元测试我的Angular应用程序。这是很容易测试,如果一个函数的方法已经使用类似呼吁:AngularJS单元测试检查函数没有方法被称为

spyOn($rootScope, "$emit"); 
expect($rootScope.$emit).toHaveBeenCalled(); 

但我不能找到一种方法来检查当一个函数被调用(没有方法),用于例如我正在使用$anchorScroll();在一个控制器中,我不知道在哪里将上面的代码应用到这个人。我见过一些Jasmine的例子,他们使用的是expect(window.myFunction()).toHaveBeenCalled(),但这不适用于Angular的DI。

回答

5

我不能在一分钟内自己尝试,但也许你可以只注入一个模拟$anchorScroll而不是?

var $anchorScroll = jasmine.createSpy('anchorScroll'); 

$controller('MyCtrl', { 
    $anchorScroll: $anchorScroll 
}); 

expect($anchorScroll).toHaveBeenCalled(); 

这应该只是创建一个空白间谍,一个将采取任何参数,什么也不做,但跟踪测试使用的调用。

+0

我的印象我也试过......但似乎我做错了什么。有用! –

相关问题