Тестовый контроллер с введенным сервисом внутри углового 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/) пример запущен ...

Ответы на вопрос(1)

Ваш ответ на вопрос