我在一个大型Angular应用程序上工作,最初我们通过使用$ provide来模拟服务来完成我们的大量测试.然而,我们现在在我们的测试中有很多Jasmine Spies来存储和监视服务.
即
spyOn(myService, 'myMethod').andReturn 'myValue'
Run Code Online (Sandbox Code Playgroud)
我们是否真的应该使用$提供此服务,或者是否存在间谍服务是最好的方法?
在Angular Tests中,他们使用间谍来监视Jquery,我将其视为外部服务.
spyOn(jq.prototype, 'on');
Run Code Online (Sandbox Code Playgroud)
$ provide似乎更多地用于内部服务.
module(function($provide){
$provide.provider('$exceptionHandler', $ExceptionHandlerProvider);
});
Run Code Online (Sandbox Code Playgroud)
还有一个Jasmine createSpy函数,但现在我认为$ provide应该始终优先于它.
任何见解或帮助将不胜感激.