【发布时间】:2018-12-07 20:42:35
【问题描述】:
如何对一个动作是否被调度进行单元测试?
例如,在一个 LogoutService 中,我有这个简单的方法:
logout(username: string) {
store.dispatch([new ResetStateAction(), new LogoutAction(username)]);
}
我需要编写一个单元测试来验证这两个动作是否被调度:
it('should dispatch ResetState and Logout actions', function () {
logoutService.logout();
// how to check the dispactched actions and their parameters?
// expect(...)
});
如何检查已分派的操作?
【问题讨论】:
-
创建一个 store 的 mock 并检查 dispatched 是否使用对应的参数调用了一次。
-
我还没有在我的 NGXS 测试中尝试过,但是您可以订阅 action stream 以在这些操作被调度时收到通知吗?
-
我已经完成了@GarthMason 提到的事情,并且有效。谢谢!
标签: angular unit-testing ngxs