我尝试为NGXS状态运行单元测试,但是当我使用Action类功能运行分派时,则无法运行
@Action(GetProductsAction)
loadProductPage(ctx: StateContext<ProductStateModel>, { page, size }: GetProductsAction) {
这是我的单元测试代码:
it('should create an action and get not empty pageProduct', () => {
spyOn(httpClient, 'get').and.returnValue(of({totalElements: 2}));
store.dispatch(new GetProductsAction(1, 20))
store.select(state => state.product.pageProduct).subscribe((pageProduct: PageProduct) => {
console.log(pageProduct)
expect(pageProduct.totalElements).toEqual(2);
});
const x = store.selectSnapshot(state => state.product.pageProduct);
console.log('xxx '+ JSON.stringify(x));
expect(x).toEqual({})
});
有人知道为什么它不起作用吗?
答案 0 :(得分:0)
dispatch
返回一个Observable,应使用await
方法进行订阅或toPromise
预订。
您在分发后立即检索了快照,因此我认为该操作根本无法处理。