首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何测试NgRX中是否调度了操作?

在NgRX中,我们可以使用一些测试技术来验证是否调度了操作。以下是一些常用的方法:

  1. 使用Jasmine的toHaveBeenCalled函数:这个函数可以用来检查一个函数是否被调用。在测试中,我们可以通过监听NgRX的Store.dispatch方法,然后使用toHaveBeenCalled函数来验证是否调度了操作。示例代码如下:
代码语言:txt
复制
import { Store } from '@ngrx/store';

describe('NgRX Testing', () => {
  let store: Store;

  beforeEach(() => {
    // 初始化store
    store = new Store();
  });

  it('should dispatch an action', () => {
    spyOn(store, 'dispatch');

    // 调用需要测试的函数

    expect(store.dispatch).toHaveBeenCalled();
  });
});
  1. 使用NgRX提供的ActionsSubjectActionsSubject是一个用于订阅和触发NgRX操作的主题。我们可以在测试中订阅ActionsSubject,然后在调用需要测试的函数后,检查是否有操作被调度。示例代码如下:
代码语言:txt
复制
import { ActionsSubject } from '@ngrx/store';

describe('NgRX Testing', () => {
  let actions$: ActionsSubject;

  beforeEach(() => {
    // 初始化actions$
    actions$ = new ActionsSubject();
  });

  it('should dispatch an action', () => {
    let actionDispatched = false;

    actions$.subscribe(action => {
      // 检查是否有操作被调度
      actionDispatched = true;
    });

    // 调用需要测试的函数

    expect(actionDispatched).toBe(true);
  });
});

这些方法可以帮助我们验证在NgRX中是否调度了操作。根据具体的测试需求,我们可以选择适合的方法来进行测试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券