2015-04-26 3 views
1

Я абсолютно не знаком с тестированием в AngularJS. У меня есть настройка кармы, и теперь я пытаюсь проверить определенную функцию на заводе, который я написал.Жасмин: попытка протестировать заводскую функцию AngularJS

Вот отрывок из моей фабрики:

app.factory('helpersFactory', ['constants', function (constants) { 
    return { 

     someFunction: function() { 
     }, 

     is24x24Icon: function (iconNum) { 
      return ((iconNum >= 10090 && iconNum <= 10125) ; 
     } 
    }; 

}]); 

Я тогда этот тест:

describe('Factory: helpersFactory', function() { 

    beforeEach(module('ppMobi')); 

    var fct; 
    beforeEach(inject(function ($factory) { 
     fct = $factory('helpersFactory'); 
    })); 

    it('should detect iconNum 10090 is a 24 x 24 icon', function() { 

     var iconNum = 10090; 
     var is24x24Icon = fct.is24x24Icon(iconNum); 
     expect(is24x24Icon).toBeTruthy(); 

    }); 
}); 

Я получаю сообщение об ошибке от кармы говорит мне, что не может читать «is24x24icon» неопределенной. Поэтому я могу только предположить, что мой завод не был создан должным образом во время теста. У меня есть зависимость от констант на фабрике, используемой другими функциями. Это просто угловой.constant() У меня есть настройка на моем основном модуле приложения.

Я нашел несколько других сообщений, но я не уверен, как это сделать, нужно ли мне вставлять зависимость моих констант в мой тест?

ответ

3

Вида новых себя, но я думаю, вам нужно использовать имя подчеркивания подчеркивания трюк, чтобы ввести свой завод:

var fct; 
beforeEach(inject(function (_helpersFactory_) { 
    fct = _helpersFactory_; 
})); 

Этот блог использует мокко, но я нашел, что это полезно и материал Кармы должен быть таким же: https://www.airpair.com/angularjs/posts/testing-angular-with-karma

И да, вам также нужно будет вводить константы (ссылка показывает, как), но ваш опубликованный код, похоже, не использует константы, поэтому вам не понадобится это для этого конкретного теста.

+0

Спасибо, что сделал трюк! – mindparse

+0

Спасибо, человек !!!! – LHH

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