Я недавно начал пытаться научиться проверять углы. У меня был некоторый успех, но на данный момент я пытаюсь проверить директиву, и я не могу заставить его работать.Неисправность, выполняющая функцию области в угловом тесте
Код испытания
describe('navigation test', function(){
var element, location, route, rootScope, scope, httpBackend;
var elm;
beforeEach(module('myApp'));
beforeEach(inject(function($compile,$rootScope,$location,$httpBackend,$route) {
location = $location;
scope = $rootScope.$new();
route = $route;
$httpBackend.whenGET('partials/nav/nav.html')
.respond(200);
element = $compile("<navigation></navigation>")(scope);
httpBackend = $httpBackend;
scope.$digest();
}));
describe('Change page function',function(){
it('should flip the location between /home and /test', function(){
location.path('/home')
scope.changePage();
scope.$digest();
expect(location.path()).to.equal('/test');
})
})
});
функция Директива
var app = angular.module('myApp');
app.directive('navigation', function($location, $q, $sce, $timeout, $mdSidenav, $mdComponentRegistry) {
return {
restrict: 'E',
templateUrl: 'partials/nav/nav.html',
link: function(scope, elements, attrs) {
scope.changePage = function() {
if($location.path() == '/home') {
$location.path('/builder')
} else {
$location.path('/home');
}
};
}); Ошибка я получаю это
сообщение об ошибке
TypeError: 'undefined' is not a function
(оценка «scope.changePage()»)
Я не могу понять, почему он не может видеть сферу. Любая помощь будет принята с благодарностью. И если бы кто-нибудь мог пролить некоторый свет на угловое тестирование, это было бы здорово.
очевидно ваша директива не была применена к объему. Пожалуйста, предоставьте plunker/jsfiddle – Michael
Не придает ли моя директива моей области? element = $ compile (" ") (область); если навигация - моя директива. Если не так, как я могу это сделать? –
BobDoleForPresident
Я не знаю - я просто вижу часть вашей директивы ..../Я не вижу названия директивы, а также не в каком модуле он определен. – Michael