2013-11-18 4 views
2

Я пытаюсь написать простой тестовый контроллер с угловым манипулятором и жасмином.тест контроллера углового контроллера не удалось

Я использую angularjs v1.0.8 и jasmine 1.3.0.

Мой код выглядит так:

1. demoController.js

'use strict'; 

var app = angular.module('MyApp', []); 

app.controller('MainCtrl', function($scope) { 

$scope.data = 'hello'; 

}); 

2. controllerTest.js

'use strict'; 

describe('MainCtrl', function() { 

var scope = null; 

beforeEach(angular.module('MyApp')); 

beforeEach(inject(function($rootScope, $controller){ 

scope = $rootScope.$new(); 

$controller('MainCtrl', {$scope: scope}); 

})); 

it('should have variable text = "Hello World!"', function(){ 

expect(scope.data).toBe('hello'); 

}); 

}); 

Как вы можете найти из моего SpecRunner. htm file У меня есть следующие файлы в пути.

угловой 1.0.8.min.js

угловые-mocks.js

радиально-scenario.js

угловые-resource.js

jasmine.js

jasmine-html.js

demoControllers.js

controllerTest.js»

Теперь я исполняю файл HTML, я получаю следующее сообщение об ошибке.

**TypeError: Object #<Object> has no method 'apply'** 

**ReferenceError: inject is not defined** 
    at null.<anonymous> 

Итак, мой вопрос: я делаю что-то неправильно или пропустил какую-либо конфигурацию?

+0

я получил, что некоторое время назад, и с помощью 'angular.mock.inject (/ * ... * /)' вместо 'впрыснуть (/ * ... * /) 'исправил это для меня. Если это не исправить, посмотрите, можете ли вы получить plunkr, и я посмотрю. Если да, дайте мне знать, и я отправлю это как ответ :) –

ответ

0

Попробуйте этот код

beforeEach(module('MyApp')); 

describe('MainCtrl', function() { 

var scope = null; 

beforeEach(inject(function($rootScope, $controller){ 

scope = $rootScope.$new(); 

$controller('MainCtrl', {$scope: scope}); 

})); 

it('should have variable text = "Hello World!"', function(){ 

expect(scope.data).toBe('hello'); 

}); 

}); 
Смежные вопросы