Модульное тестирование помощника внутри собственного провайдера в angularjs

0

У меня есть этот провайдер:

angular.module('app').provider('appProvider', function() {
  this.$get = Helper;

  function Helper() {
    function method() {
      return true;
    };

    return {
      method: method
    };
});

Когда модуль тестирует его, я могу связаться с appProvider, но не с помощником в модульных тестах. Я пытался это сделать:

describe('test', function() {
  var prov;

  beforeEach(angular.mock.module('app', function(appProvider) {
    prov = appProvider;
  }));

  it('provider', inject(function() {
    expect(prov.Helper.method()).toEqual(true);
  }));
});

И получить эту ошибку:

TypeError: "undefined" не является объектом (оценка "prov.Helper.method()")

Вопрос: Как мне достичь метода(), чтобы оценить правильное поведение?

Теги:
unit-testing
provider

1 ответ

0

Вы пытаетесь протестировать метод службы, предоставляемый вашим провайдером, поэтому для проверки провайдера кажется немного окольным. Почему бы просто не протестировать службу?

  • 0
    Понятия не имею, как это сделать, когда служба (Помощник) объявлена внутри провайдера (appProvider).
  • 0
    Это может быть полезно: docs.angularjs.org/guide/services#unit-testing

Ещё вопросы

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