NGRX Entity test в компоненте - PullRequest
       4

NGRX Entity test в компоненте

0 голосов
/ 14 декабря 2018

У меня есть компонент с селектором сущностей 'selectAllProperties' в ngOnInit, и я хочу протестировать этот компонент:

ngOnInit() {
    this.store.dispatch(new LoadPropertiesRequested());
    this.properties$ = this.store.pipe(select(selectAllProperties));
    this.loading$ = this.store.pipe(select(selectPropertiesLoading));
    this.logs$ = this.store.pipe(select(selectPropertiesLogs));
  }

В моем spec-файле я инициализировал хранилище, как в документе ngrx:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        StoreModule.forRoot({
          ...fromRoot.reducers,
          feature: combineReducers(fromProperties.reducer),
        })
      ],
      declarations: [
        SidebarPropertiesComponent,
        SidebarElementComponent
      ]
    })
    .compileComponents();
  }));
  • Когда я запускаю тесты, у меня появляется «TypeError: Невозможно прочитать свойства« идентификаторы неопределенных ».Все остальные селекторы не выдают ошибок

  • Я также хотел бы посмеяться над Observable, возвращаемым каждым селектором.

Спасибо

1 Ответ

0 голосов
/ 15 декабря 2018

Я нашел проблему, в TestBed.configureTestingModule

вместо

  imports: [
    StoreModule.forRoot({
      ...fromRoot.reducers,
      feature: combineReducers(fromProperties.reducer),
    })
  ],

используйте

  imports: [
    StoreModule.forRoot(reducers, { metaReducers }),
    StoreModule.forFeature('properties', fromProperties.reducer),
  ],
  • No more 'TypeError: Не удается прочитатьсвойство 'идентификаторы' из неопределенного '
  • Я могу издеваться над свойствами
 it('should have 2 properties elements', () => {
   store.dispatch(new LoadPropertiesSuccess({properties: propertiesMock}));
   fixture.detectChanges();

   const list = debugElement.queryAll(By.css('li'));
   expect(list.length).toBe(2);
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...