нового для углового и модульного тестирования, у меня есть функция в моем контроллере следующим образом:UnitularJS Unit Test: Как написать модульный тест для функции области?
function TermList($scope, $http, $q, $timeout, $modal, uiGridConstants, uiGridGroupingConstants, storedValue, sendEmail, getUser) {
$scope.greeting = "hello";
$scope.sum = function sum() {
$scope.z = $scope.x + $scope.y;
};
$scope.password = '';
$scope.grade = function() {
var size = $scope.password.length;
if (size > 8) {
$scope.strength = 'strong';
} else if (size > 3) {
$scope.strength = 'medium';
} else {
$scope.strength = 'weak';
}
};
}
и мне нужно, чтобы написать блок для выполнения своих функций области видимости, я следующий тест написано:
describe('routerApp', function() {
var scope,
controller;
beforeEach(function() {
module('routerApp');
});
describe('TermList', function() {
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('TermList', {
'$scope': scope
});
}));
it('sets the name', function() {
expect(scope.greeting).toEqual('hello');
});
});
});
и я получаю следующее сообщение об ошибке, когда я запускаю мое модульное тестирование:
TypeError: Cannot read property 'greeting' of undefined
Что делает ваш '.controller («TermList»...' называют выглядеть? Видимо, это не становится строить свою сферу правильно, и это может быть что-то об этом. –
Похоже, вам не хватает много зависимостей. Фактически определена ваша переменная 'controller'?' expect (controller) .toBeDefined(); 'Мое предположение - это не так. Вероятно, вы захотите создать издеваемую реализацию всех зависимостей контроллеров, чтобы определить' controller '.' .controller ('TermList', {$ scope}) 'не является контроллером в вашем проекте. – tehbeardedone