要编写 Action ngrx 4 的测试案例,你可以使用一些常用的测试框架和工具,如 Karma、Jasmine 或 Jest。下面是一个示例代码,展示了如何编写一个简单的 Action 测试案例:
import { TestBed } from '@angular/core/testing';
import { StoreModule, Store } from '@ngrx/store';
import { MyAction } from './my-action';
import { myReducer } from './my-reducer';
describe('MyAction', () => {
let store: Store;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
StoreModule.forRoot({ myReducer })
]
});
store = TestBed.inject(Store);
});
it('should dispatch the action correctly', () => {
const action = new MyAction('test');
const dispatchSpy = spyOn(store, 'dispatch');
store.dispatch(action);
expect(dispatchSpy).toHaveBeenCalledWith(action);
});
});
在这个例子中,我们首先导入了需要测试的 Action 和 Reducer。然后,在 beforeEach
块中,我们使用 TestBed.configureTestingModule
配置了测试环境,并导入了 StoreModule,将我们的 Reducer 添加到 Store 中。
在测试用例中,我们创建了一个新的 Action 实例,并使用 spyOn
来监视 Store 的 dispatch
方法。然后,我们调用 store.dispatch
方法来触发 Action,并使用 toHaveBeenCalledWith
来验证 dispatch
方法是否正确地被调用,并传入了正确的 Action。
这只是一个简单的示例,你可以根据你的具体需求编写更复杂的测试案例。