angular - 仅测试 ngrx 操作是否被调用就足够了吗? (单元测试)

标签 angular unit-testing ngrx ngrx-store

假设我在组件中有以下代码,该代码是公共(public)的并在 View 中使用:

removeItemFromCart(item: CartItem): void {
  this.store$.dispatch(OrderingStoreActions.removeItemFromCart({ cartItem: item }));
}

在单元测试中,仅测试操作是否已调度就足够了吗?

it("should remove the item from the cart", () => {
    const item = <CartItem>{ amount: 1, product: { id: "p" } };
    component.removeItemFromCart(item);
    expect(store.dispatch).toHaveBeenCalledWith(OrderingStoreActions.removeItemFromCart({ cartItem: item  }));
});

或者我应该在模拟存储中测试操作结果是否在功能存储上执行?

最佳答案

您应该对代码是否正确使用给定的 API/库进行单元测试,而不是该 API/库是否有效(这将是集成测试)。因此,您需要确认该操作已使用您打算发送给它的参数进行调度。您在此处显示的测试就足够了。

关于angular - 仅测试 ngrx 操作是否被调用就足够了吗? (单元测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61029674/

相关文章:

Angular 8 如何从 ngOnInit 中的可观察值中获取值(value)以及它们的行为方式

c# - 如何使用私有(private) setter 将模拟接口(interface)分配给属性以进行单元测试?

angular - 带滤镜的 ngrx 效果有效吗?

javascript - featureModule 中的 Ngrx meta-reducer 处理所有 featureModule 的操作

Angular ngrx@effect 基本问题 : Type 'Observable<void>' is not assignable to type

angular - 如何在 Angular Universal 中向 <body> 添加类?

angular - vue 中的 component 与 angular 的等价物是什么?

node.js - 在更改 Node 中的变量/模型时,Angular 2 不会更新 UI

visual-studio-2010 - VS2010 单元测试 - 使用不同的参数重新运行相同的测试

asp.net-mvc-3 - Mvc 4 单元测试概念