Angular ngxs单元测试分派不起作用

时间:2020-01-03 15:00:08

标签: angular unit-testing ngxs

我尝试为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({})

});

有人知道为什么它不起作用吗?

1 个答案:

答案 0 :(得分:0)

dispatch返回一个Observable,应使用await方法进行订阅或toPromise预订。

您在分发后立即检索了快照,因此我认为该操作根本无法处理。