2015-04-30 4 views
1

Я скопировал пример углового примера для модульного тестирования от here. Как просто непосредственная реализация примера, я запутался с ошибкой.Испытание блока жасмина Angularjs

Я работаю в Linux и использую скобки в качестве IDE.

Просьба сообщить, что является отсутствующим элементом для запуска тестов на жасмин.

Ouput жасмина

PasswordController encountered a declaration exception.  
ReferenceError: module is not defined 

controller.js

angular.module('app', []) 
.controller('PasswordController', function PasswordController($scope) { 
    $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'; 
    } 
    }; 
}); 

Контроллер-spec.js

describe('PasswordController', function() { 
    beforeEach(module('app')); 

    var $controller; 

    beforeEach(inject(function(_$controller_){ 
    // The injector unwraps the underscores (_) from around the parameter names when matching 
    $controller = _$controller_; 
    })); 

    describe('$scope.grade', function() { 
    it('sets the strength to "strong" if the password length is >8 chars', function() { 
     var $scope = {}; 
     var controller = $controller('PasswordController', { $scope: $scope }); 
     $scope.password = 'longerthaneightchars'; 
     $scope.grade(); 
     expect($scope.strength).toEqual('strong'); 
    }); 
    }); 
}); 

карма-conf.js

// list of files/patterns to load in the browser 
    files: [ 
      'bower_components/angular/angular.js', 
      'bower_components/angular-mocks/angular-mocks.js', 
      'bower_components/angular-resource/angular-resource.js', 
      'app/controllers/*.js', 
      'test/controllers/*.js' 
    ], 

Карма Выходные

/var/www/html/angular-jasmine-testing $ kma start karma.conf.js 
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser Chrome 
INFO [Chrome 41.0.2272 (Linux)]: Connected on socket vZCR4hAC8uU7LutFNVl3 with id 44440115 
Chrome 41.0.2272 (Linux): Executed 1 of 1 SUCCESS (0.042 secs/0.035 secs) 

Folder structure Image

+0

Вы уверены, что у вас есть все эти файлы в вашем проекте? Не могли бы вы опубликовать полный результат кармы? –

+0

Карма, похоже, успешно провела тесты: «Выполнено 1 из 1 УСПЕХ». Возможно ли, что скобки пытаются использовать спецификации Жасмина за пределами кармы? –

+0

Я не думаю, что проблема связана с скобками, так как я запускал простой тест javascript, и он был выполнен. –

ответ

0

мне удалось получить тестовую работу. См plunkr ниже:

describe("PasswordController", function() { 
    beforeEach(module('app')); 

    var $scope = null; 

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

    describe("$scope.grade", function() { 
    it("sets the strength to 'strong' if the password length is >8 chars", function() { 
     $scope.password = "longerthaneightchars"; 
     $scope.grade(); 
     expect($scope.strength).toEqual("strong"); 
     }); 
    }) 

}); 

plunkr

+0

Я пробовал ваш код, и он по-прежнему вызывает ошибку. Но карма выполнена. Возможно, это вопрос о скобках, как сказано в комментариях. Я буду проверять с возвышенным и держать вас в курсе. –

Смежные вопросы