Я программирую с помощью VS2013 и хотел бы провести модульные тесты на своих контроллерах AngularJs. Например, у меня есть taController.js, который выглядит так:
var module = angular.module("MyApp", []);
var TAController = ["$scope",
function ($scope) {
$scope.myNumber = 2;
$scope.add = function (number) {
$scope.myNumber = $scope.myNumber + number;
};
}];
И HTML-страница, которая использует это, выглядит так:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" data-ng-app="MyApp">
<head>
<title></title>
<script src="Scripts/angular.js"></script>
<script src="Scripts/taController.js"></script>
</head>
<body>
<div id="myDiv" data-ng-controller="TAController">
{{myNumber}}<br />
<a href="" ng-click="add(2)">Add 2</a><br />
</div>
</body>
</html>
Я хочу создать модульный тест, используя Jasmine и Chutzpah. Я создал AngularTest.js в каталоге спецификаций моего тестового проекта, который выглядит так:
/// <reference path="../scripts/jasmine.js" />
/// <reference path="../../unittestingwithjasmine/scripts/tacontroller.js" />
describe("My Tacontroller", function () {
var element;
var myScope;
beforeEach(inject(function($scope) {
myScope = $scope;
}));
it("should be able to add 2 plus 2", function () {
myScope.add(2)
expect(myScope.myNumber).toBe(4);
});
});
Я думаю, что в приведенном выше коде есть ряд ошибок. Первый из них — Test Failed — мой Tacontroler столкнулся с исключением объявления. Сообщение: RefferenceError: Не удается найти карикатуру: введите в файл:///C....../specs/angulaertest.js (строка 10)
Мой вопрос в том, как я могу написать свой AngularTest.js для правильного тестирования, добавив функцию в мой Tacontroller.