Тестирование NGXS State Class - PullRequest
0 голосов
/ 07 ноября 2018

Как бы вы пошли на тестирование этого государственного класса в угловых? Может быть с TestBed или нет. Нужно ли создавать испытательный стенд и предоставлять состояние по умолчанию? Любая помощь будет оценена. Спасибо

    @State<SomeModel>({
        name: 'providersubtypes',
        defaults: {
            prop: {} as Type,
        },
    })
    export class SomeState {

        constructor(private readonly alert: AlertService, private readonly shSrv: SharedService) { }

        @Selector()
        static getProviderSubTypes(state: SomeModel) {
            return state.subtypes;
        }

        @Action(FetchProviderSubTypes)
        fetchProviderSubTypes(context: StateContext<SomeModel>, action: FetchProviderSubTypes) {
            this.shSrv.getDataAction(action.url).subscribe(d => {
                context.patchState({
                    ...context.getState(),
                    subtypes: d,
                });
            });
        }
}

1 Ответ

0 голосов
/ 07 ноября 2018

Посмотрите в документации по фреймворку: https://ngxs.gitbook.io/ngxs/recipes/unit-testing

Вы можете изменить selectOnce на selectSnapshot, чтобы избежать использования наблюдаемых, например:

it('it toggles feed', async(() => {
  store.dispatch(new FeedAnimals());
  
  const feed = store.selectSnapshot(state => state.zoo.feed);
  expect(feed).toBe(true);
}));
...