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
});
});
});