在NgRX中,我们可以使用一些测试技术来验证是否调度了操作。以下是一些常用的方法:
toHaveBeenCalled
函数:这个函数可以用来检查一个函数是否被调用。在测试中,我们可以通过监听NgRX的Store.dispatch
方法,然后使用toHaveBeenCalled
函数来验证是否调度了操作。示例代码如下: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();
});
});
ActionsSubject
:ActionsSubject
是一个用于订阅和触发NgRX操作的主题。我们可以在测试中订阅ActionsSubject
,然后在调用需要测试的函数后,检查是否有操作被调度。示例代码如下: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中是否调度了操作。根据具体的测试需求,我们可以选择适合的方法来进行测试。
领取专属 10元无门槛券
手把手带您无忧上云