Angular - Как протестировать Feature-Module с помощью NgRedux

У меня есть разные модули и компоненты в моем проекте Angular, и я успешно использую NgRedux (@angular-redux/store), чтобы иметь центральное состояние.

Как я могу проверить следующий функциональный модуль:

  • Модуль не имеет компонентов
  • это просто
    • подписывается на некоторые части объекта избыточного состояния,
    • рассчитывает что-то на изменение
    • и отправляет действие, чтобы сохранить результат как состояние

Я начал с

fdescribe('Calculator', () => {

  const mockNgRedux: NgRedux<RT60CalcState> = MockNgRedux.getInstance();

  beforeEach(() => {

    // from https://github.com/angular-redux/store/blob/master/articles/intro-tutorial.md
    TestBed.configureTestingModule({
      declarations: [],
      imports: [CalculatorModule],
      providers: []
    }).compileComponents();

    MockNgRedux.reset();

  });

  it('should send UPDATE_CALCULATION_RT60 action when I update the volume', () => {

    // there is no createModule method
    // const fixture = TestBed.module;

    // shouldn't TestBed automatically build my module?!
    // const x = new CalculatorModule(mockNgRedux);

    const spy = spyOn(mockNgRedux, 'dispatch');

    mockNgRedux.dispatch({type: UPDATE_ROOM_VOLUME, vol: 101});

    // only recognizes my UPDATE_ROOM_VOLUME, async problem? or
    // can I listen for the second call?!
    expect(mockNgRedux.dispatch).toHaveBeenCalledWith({
      type: UPDATE_CALCULATION_RT60
    });

  });

});

0 ответов

Другие вопросы по тегам