0

您将如何以角度测试这个状态类?可能有或没有测试床。您是否必须创建测试平台并提供默认状态?任何帮助将不胜感激。谢谢

    @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,
                });
            });
        }
}
4

1 回答 1

2

查看框架的文档: https ://ngxs.gitbook.io/ngxs/recipes/unit-testing

您可以将 selectOnce 更改为 selectSnapshot 以避免使用 observables,例如:

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

于 2018-11-07T20:14:24.680 回答