2015-01-29 6 views
-1

Привет У меня есть простой тест:Угловая служба не впрыскивается в единичном тесте

define(["angular", "angularMocks", "app", "normalizer"], function(angular, mocks, app) { 

    describe("service: normalizer", function() { 
    var normalizerService; 

    beforeEach(module("ADB")); 

    beforeEach(inject(function(_normalizer_) { 
     normalizerService = _normalizer_; 
    })); 

    var params = {}; 
    var metadata = {}; 
    var data = {}; 

    var response = normalizerService.topLanguagesHybrid(metadata, data, params); 

    var type = typeof response; 
    expect(type).toEqual("object"); 

    }); 
}); 

Вопрос заключается в том, что служба нормализатор никогда не создаются, а в ЦМД я вижу следующее сообщение об ошибке:

TypeError: 'undefined' is not an object (evaluating 'normalizerService.topLanguagesHybrid') 

Примечание: Я использую requirejs в этом проекте, и я вижу, что файл службы нормализатора загружается в браузер (со всеми его зависимостями). Кажется, что он просто не вводится. Что я сделал не так?

Link to error

ответ

1

При определении услуг, вы забыли определить нормализатор, поэтому правильный синтаксис то же

define(["angular", "angularMocks", "app", "normalizer"], function(angular, mocks, app, normalizerService) { 

    describe("service: normalizer", function() { 
    var normalizerService; 

    beforeEach(module("ADB")); 

    var params = {}; 
    var metadata = {}; 
    var data = {}; 

    var response = normalizerService.topLanguagesHybrid(metadata, data, params); 

    var type = typeof response; 
    expect(type).toEqual("object"); 

    }); 
}); 
+0

Я получаю ту же ошибку + плюс новая ошибка: 'службы: нормализатор встречается исключение декларации FAILED ' – vlio20

+0

@ vlio20: Модифицированный код. Надеюсь, это поможет сейчас. – V31

+0

Это та же ошибка :(Я думаю, что мне нужно как-то вставить ее. Спасибо за помощь – vlio20

1

Вы забыли определить это, для тестового сценария, beforeEach запускается перед каждая функция «это».

define(["angular", "angularMocks", "app", "normalizer"], function(angular, mocks, app) { 

    describe("service: normalizer", function() { 
    var normalizerService; 

    beforeEach(module("ADB")); 

    beforeEach(inject(function(_normalizer_) { 
     normalizerService = _normalizer_; 
    })); 

    it('should define topLanguageHybrid method', function() { 
     var params = {}; 
     var metadata = {}; 
     var data = {}; 

     var response = normalizerService.topLanguagesHybrid(metadata, data, params); 

     var type = typeof response; 
     expect(type).toEqual("object"); 
    }); 
    }); 
}); 

Более подробная информация о жасмин: jasmine docs

+0

По-прежнему возникает ошибка, указывающая на то, что есть некоторая проблема с инжектированием службы. – vlio20

+0

Отправьте сообщение об ошибке, которое вы получаете. – Wawy

+0

Вот ошибка, которую я вижу на моей консоли: http: //prntscr.com/5ygtz8. Я использую код, который вы опубликовали. – vlio20

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