Как я могу написать модульный тест для angularJs Factory

0

EDIT: (добавить тестовый код)

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

MyApp.factory('params', ['$rootScope', function ($rootScope) {
    // supported languages
    var params = {
        layout: {
            pageAutoScrollOnLoad: 2000
            pageSidebarClosed: false, 
            pageBodySolid: false, 

        },
        layoutImgPath: Metronic.getAssetsPath() + 'app/img/',
        layoutCssPath: Metronic.getAssetsPath() + 'app/css/'
    };
    $rootScope.params = params;
    return params;
}]);

Как и в ответе, предложенном @MoLow, я стараюсь делать то же самое.

describe('params', function () {
var params;

beforeEach(module('params'));
beforeEach(inject(function (_params_) {
    params = _params_;
}));

it('Should ', function () {
    expect(params).to.be.a('Object');
 });

});

Но у меня есть эта ошибка:

TypeError: undefined не является объектом

Это означает, что параметры не определены. Я не знаю, почему. Мне нужна помощь для решения этой проблемы

Теги:
jasmine
factory

2 ответа

0
Лучший ответ
describe('params', function () {
    var params;

    beforeEach(module('params'));
    beforeEach(inject(function (_params_) {
        params = _params_;
    }));

    it('Should ', function () {
        expect(params).to.be.a('Object');
    });

});
  • 0
    Большое спасибо за ваш ответ .. Я пробую его, но мой тест ReferenceError: Can't find variable: Metronic и я получаю эту ошибку: ReferenceError: Can't find variable: Metronic
  • 0
    Как я могу избежать этой ошибки? Когда я комментирую эти 2 строки (которые содержат Metronic), чтобы увидеть результат, я получаю эту ошибку TypeError: undefined не является объектом (оценка 'ожидаем (параметры) .to.be')
1

Не забывайте включать все ваши зависимости (Metronic) при загрузке тестов в файл karma.conf.js, если вы используете карму.

  • 0
    спасибо @pansay за ваш ответ, но я не могу найти js-файл для зависимостей Metronic, это единственное возможное решение для моей проблемы? Я не могу использовать шпион в этом случае?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню