Как смоделировать состояние @ ngrx / store в модульных тестах Angular 8 с помощью MockStore и MemoizedSelector - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать юнит-тестирование с шуткой в ​​angular 8 с RX JS. Я хочу издеваться над магазином. Я использую https://ngrx.io/guide/store/testing пример использования селекторов. Может ли кто-нибудь помочь мне, как я могу использовать MemoizedSelector и MockStore, чтобы использовать макет магазина независимо.

 this.store.select(homeState).pipe(select(s => s.checkStatus)).subscribe(status => {
     console.log(status);
     // We performation other action.
});

У меня есть много селекторов в этом компоненте. Как я могу издеваться над множеством селекторов и обновлять значение селектора для каждого теста?

1 Ответ

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

Вы должны следовать их информации в Использование селекторов макетов .

describe('User Greeting Component', () => { 
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [provideMockStore()],
      declarations: [YourComponent],
    }); 
  });

  it('test', () => {
    const mockStore = TestBed.inject(MockStore);
    const mockHomeState = mockStore.overrideSelector(
      homeState,
      {checkStatus: true}
    );

    const fixture = TestBed.createComponent(YourComponent);
    fixture.detectChanges();
  });
});
...