Я пытаюсь запустить очень простой тест на угловую директиву, но не могу заставить ее работать. Мой код ниже. Ошибка, которую я вижу из jshint: 'inject' is not defined
inject 'inject' is not defined
, а ошибка для моего неудачного теста: TypeError: object is not a function
.
'use strict';
describe('playerInfo directive', function() {
var $compile;
var $rootScope;
beforeEach(module('gameApp'));
beforeEach(inject(function(_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
it('should replace the element with the appropriate content', function() {
var element = $compile('<dm-player-info></dm-player-info>')($rootScope);
$rootScope.$digest();
expect(element.html()).toContain('Member Since:');
});
});
Тест не работает с указанным выше сообщением об ошибке, как только он попадает в module
. Так что ясно, что тест не подбирает, что включены angular-mocks
. Тем не менее, я упоминал об этом в своем index.html
и тестировал как с ngMock
как зависимость от приложения (который разбивает мое приложение, но все еще не запускает тест) и без него.
UPDATE: В настоящее время я использую jasmine-node для тестирования. Это может быть проблемой, необходимость добавления жасмина.
Я столкнулся с этой проблемой только сейчас, и это то, что сделал мой день (в самом конце этого на самом деле). Просто добавьте module('ng')
вместе с module('yourAppModule')
. Я поставил их перед каждым блоком. Он должен работать.