Подтвердить что ты не робот

Почему я получаю сообщение "вставлять" undefined при использовании Jasmine с Angular?

Я тестирую юнитов Jasmine/AngularJS. Я создал простое приложение angular, чтобы добавить два числа, чтобы я мог узнать, как писать модульные тесты для angular App. Angular Doc на unit test является неполным. Основываясь на ответах в блогах и переполнении стека, я создаю свой первый тест, и я запускаю "инжектор" undefined. Я использую структуру Jasmine для модульного тестирования.
HTML

<body>
<div ng-controller="additionCtrl">
    First Number: <input ng-model="NumberOne"/><br/>
    Second Number: <input ng-model="NumberTwo"/>
    <button ng-click="add(NumberOne, NumberTwo)">Add</button><br/>
    Result: {{Result}}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<script src="Scripts/additionCtrl.js"></script>
</body>

Контроллер:

function additionCtrl($scope) {
$scope.NumberOne = 0;
$scope.NumberTwo = 0;
$scope.Result = 0;
$scope.add = function (a, b) {
};
}

Jasmine spec file.

describe("Addition", function () {
var $scope, ctrl;

beforeEach(inject(function ($rootScope, $controller) {
    this.scope = $rootScope.$new();
    ctrl = $controller('additionCtrl', {
       $scope: this.scope 
    });
}));

it("should add two integer numbers.", inject(function ($controller) {        
    expect(ctrl.add(2, 3)).toEqual(5);
}));
});

Specrunner.html

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
  <script type="text/javascript" src="lib/angular-mocks.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>

  <!-- include source files here... -->
  <script type="text/javascript" src="../App/Scripts/additionCtrl.js"></script>

  <!-- include spec files here... -->
  <script type="text/javascript" src="spec/addition.spec.js"></script>  

Это неудачный тест, и как только тест завершится с ожидаемым результатом, я могу изменить код, чтобы он прошел, но я столкнулся с проблемой как-то angular mock не получает инжектор.
Я видел пример, где я могу использовать контроллер вместо использования инжектора, но я хотел бы попытаться научиться использовать инжектор, чтобы настроить более сложные тесты.
Мне может быть что-то не так просто. Пожалуйста, направьте меня на любую запись, которую я, возможно, пропустил. Благодаря

4b9b3361

Ответ 1

Для дальнейшего использования здесь Plunker с полной установкой unit test (для ответа на ваш вопрос, который я собирался опубликовать)

http://plnkr.co/edit/KZGKM6

Полезно иметь эту настройку для обмена тестовыми сценариями.

Ответ 2

Нашел проблему, URL-адрес, который я использовал для доступа к angular -mock, был неправильным. Я изменил его на " http://code.angularjs.org/1.0.6/angular-mocks.js", а также изменил порядок тегов script на

<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<script type="text/javascript" src="http://code.angularjs.org/1.0.6/angular-mocks.js"></script>

теперь он терпит неудачу в методе, поскольку он должен быть.