2015-03-14 3 views
4

Когда я бегу SpecRunner.html, я получаю следующую ошибкуReferenceError: модуль не определен в жасмин

ReferenceError: module is not defined

мой контроллер является

angular.module('mymodule', []) 
 
    .controller('mycontroller', ['$scope', 
 
    function($scope) { 
 
     $scope.employees = [{ 
 
     name: 'Dick', 
 
     address: 'Mumbai' 
 
     }, { 
 
     name: 'Tom', 
 
     address: 'US' 
 
     }]; 
 
     $scope.addEmployee = function() { 
 
     $scope.employees.push({ 
 
      name: $scope.name, 
 
      address: $scope.address 
 
     }); 
 
     } 
 

 
    } 
 
    ])

и мой спецификация

describe('Employee', function() { 
 
    var mycontroller, scope; 
 
    beforeEach(module('mymodule')); 
 

 
    beforeEach(inject(function($controller, $scope) { 
 
    scope = $rootScope; 
 
    mycontroller = $controller('mycontroller', { 
 
     $scope: scope 
 

 
    }); 
 
    })); 
 
    it("when employee gets added", function() { 
 
    var employeecount = $scope.employees.count; 
 
    $scope.addEmployee('xxxx', 'yyy'); 
 
    var employeecount1 = $scope.employees.count; 
 
    expect(employeecount + 1).toBe(employeecount1); 
 
    }); 
 
});

Мои SpecRunner.html является

<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.2.0/jasmine_favicon.png"> 
    <link rel="stylesheet" href="lib/jasmine-2.2.0/jasmine.css"> 

    <script src="lib/jasmine-2.2.0/jasmine.js"></script> 
    <script src="lib/jasmine-2.2.0/jasmine-html.js"></script> 
    <script src="lib/jasmine-2.2.0/boot.js"></script> 


    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
    <script src="../Controller.js"></script> 
    <script src="spec/myspec.js"></script> 

PS: Its мой первый тест в блок жасмин.

ответ

3

Вы ссылаетесь на window.module из тестового кода. Для этого вам нужно загрузить угловые макеты в своем spec-runner, см. https://docs.angularjs.org/api/ngMock/function/angular.mock.module

+0

у меня было, но потом я обнаружил, что мне нужно иметь жасмин расслоения плотных файлы включены перед загрузкой углового и угловыми издевается (ответ Yeysides'). Выполнение обратного действия также вызвало ошибку. – cst1992

4

Хорошо, поэтому я весь день был в этом вопросе и, наконец, нашел, почему он не работал, хотя у меня был угловой макет сценария в мой спекулянт. Приказ имеет значение здесь, и это то, что сработало для меня.

<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.4.0/jasmine_favicon.png"> 
    <link rel="stylesheet" href="lib/jasmine-2.4.0/jasmine.css"> 

    <script src="lib/jasmine-2.4.0/jasmine.js"></script> 
    <script src="lib/jasmine-2.4.0/jasmine-html.js"></script> 
    <script src="lib/jasmine-2.4.0/boot.js"></script> 

    <script src="../../lib/angular/angular.js"></script> 
    <script src="../../lib/angular/angular-animate.js"></script> 
    <script src="../../lib/angular/angular-route.js"></script> 
    <script src="../../lib/angular/angular-touch.js"></script> 
    <script src="../../lib/angular/angular-sanitize.js"></script> 
    <script src="../../lib/angular/angular-mocks.js"></script> 

    <!-- include source files here... --> 
    <script src="../student/data/classesData.js"></script> 

    <!-- include spec files here... --> 
    <script src="spec/LMSClassesSpec.js"></script> 

Я действительно надеюсь, что это поможет кому-то в будущем

+0

спасибо, было действительно полезно –

+0

спасибо вам много! ты просто спас меня. – ddz

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