Тестовый набор для Action ngrx 4 - PullRequest
0 голосов
/ 30 мая 2020

Я новичок в ngrx, у нас есть angular proj, который использует ngrx для хранения / состояния данных. и теперь мне нужно написать тестовый пример для всего кода действий, редуктора и другого кода. но я застрял в написании тестовых примеров для действий. посмотрел в Google, но помощи не нашел.

export enum ProjAction {
   INSERT_RECORD = "[ProjAction] Insert a record."
}

export class ProjActionCreator(private store: Store<ProjState>) {
   insertRecord(data: any) {
        this.store.dispatch(<Action>{
           type: ProjAction.INSERT_RECORD,
           payload: data
        })
   }

}

Я пытался создать шпионский объект и отправить его, но мне это не помогло. любая помощь будет оценена.

1 Ответ

0 голосов
/ 30 мая 2020

Для этого вам нужно просто подтвердить, что this.store.dispatch был вызван с желаемыми аргументами.

it('test', () => {
  // preparation
  const store = TestBed.get(Store);
  spyOn(store, 'dispatch');

  // action
  component.insertRecord({test: '123'});

  // assertion
  expect(store.dispatch).toHaveBeenCalledWith({
    type: ProjAction.INSERT_RECORD,
    payload: {
      test: '123',
    },
  });
});
...