问题描述
我想测试一下这种效果:
@Effect()
cardProductsRequest$ = this.actions$.pipe(
ofType(OrderCardActions.getCardProducts),switchMap((_) => {
return this.orderCardService.getCardProducts().pipe(
map((cardProductsResponse) => {
return OrderCardActions.getCardProductsResponse({
cardProducts: cardProductsResponse.cardProducts,});
}),catchError((error) => {
return of(OrderCardActions.getCardProductsFailed({ error }));
})
);
})
);
我的状态如下:
export interface OrderCardState {
cardProducts: CardProduct[];
cardArts: {
[cardArtKey: string]: CardProductArtState;
};
loading: boolean;
error: ErrorDetails;
selectedCardProduct: CardProduct;
selectedCreditMax: CreditMax;
}
这是迄今为止我对测试的最佳尝试:
it('should retrieve card products,and produce a GetCardProductsResponse action',() => {
const action = OrderCardActions.getCardProducts();
const cardProducts = [createCardProduct()];
const outcome = OrderCardActions.getCardProductsResponse({
cardProducts: cardProducts,});
orderCardService.getCardProducts.and.returnValue(of(cardProducts));
actions = hot('-a-',{ a: action });
const expected = cold('-b',{ b: outcome });
expect(effects.cardProductsRequest$).toBeObservable(expected);
});
我收到此错误:
Error: Expected $[0].notification.value.cardProducts = undefined to equal [ Object({ productNumber: 192,name: '6sVnCHKtQZTuPW7xUowimmjuoqn641Qi',description: 'EuCGQwFtOzBZjwxPOOG4QNja9CZxCaPJC3bGnvtMsv7lSbqH9ux9KHc6Jw7ES65cghOfIeaCH3FYojcf',price: Object({ price: 'Wxpk3x7QZfZQylXKvI7Y',additionalinformation: 'k7wrpMDurXWIV46bfSoWjrzWr8nsgSDbPdz70faJNjZ0aweAh9' }),validAccounts: [ ],creditMaxes: [ ],cardDesigns: [ ] }) ].
我不确定这是因为我没有正确测试我的效果是否丢失了数据,还是我的testdata错误或期望错误?有什么想法吗?
谢谢
索伦
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)