Тестовый контроллер с введенным сервисом внутри углового JS с жасмином
Я пытаюсь понять, как проверить мой код с помощью jasmine и angularJS. Я написал тестовый проект с контроллером и внедренным сервисом. Теперь я хочу проверить контроллер и попытаться смоделировать введенный сервис. Но я неЯ нашел способ проверить функцию «Прибыли" от моего контроллера. Вот's мой jsfiddle:http://jsfiddle.net/2fwxS/
controller.js:
angular.module('myApp.controllers', [])
.controller('MyCtrl', ['$scope', 'MyService', function ($scope, MyService) {
$scope.User = {};
$scope.HasUserArrived = false;
$scope.Arrived = function(firstname, lastname) {
$scope.HasUserArrived = MyService.Arrive(firstname, lastname);
return $scope.HasUserArrived;
}
}]);
services.js:
var myApp = angular.module('myApp.services', []).
value('version', '0.1');
myApp.factory('MyService', [function () {
return {
HasArrived: false,
Arrive: function (firstname, lastname) {
this.HasArrived = false;
if (firstname && lastname) {
this.HasArrived = true;
}
console.log("User has arrived: " + this.HasArrived);
return this.HasArrived;
}
}
}]);
Я нашел несколько похожих объяснений, где $ предоставляет правильное решение (Как я могу написать тест Жасмин для углового контроллера и службы, как это?) или createSpy (Как вы издеваетесь над сервисом Angular, который является функцией?) но я не былне в состоянии понять, когда мне нужно $ provider.factory или $ provider.value или когда мне следует использовать createSpy?
Я был бы признателен, если бы кто-нибудь мог помочь мне понять различия и получить деактивированный код в моем jsFiddle (http://jsfiddle.net/2fwxS/) пример запущен ...