0
在对Angular Controller进行Jasmine测试时,我发现这两种方法之间存在差异。不应该有,但有。这就是说,使用调试,我发现在这两种情况下,正确的模拟项目都会通过,但测试的行为有所不同。为什么这些方法在测试控制器时有所不同
首先:我们在这里模拟服务项目,然后在创建时使用DI注入到控制器中。
$provide.value('core.data.CompanyService', companyService);
$provide.value('core.list.ListGenerator', listGeneratorFactory);
$provide.value('core.actions.ActionContext', actionContext);
ActivitiesCtrl = $controller('activities.ActivitiesCtrl', {
$scope: scope
});
二: 这里我们明确指定控制器创建注入的服务项目:
ActivitiesCtrl = $controller('activities.ActivitiesCtrl', {
$scope: scope,
'core.lists.ListGenerator': listGeneratorFactory,
'core.actions.ActionContext': actionContext,
'core.data.CompanyService': companyService
});
定义如何他们的行为不同的 – Phil
重复,但没有答案:1)[Angular.js测试控制器:指定依赖通过$提供vs $控制器](http://stackoverflow.com/questions/30776642/angular-js-testing-controllers-specifying-依赖关系 - 通过提供vs控制)2)[AngularJS茉莉服务模拟](http://stackoverflow.com/questions/30510463/angularjs-jasmine-service-mock) –
@Phil我已经重组的应用程序,和使用第一种方法使测试失败,但第二种方法使测试通过。然而在理论上都是这样做的。 –