我遵循ngrx商店测试官方文档:https://ngrx.io/guide/store/testing
即使是注入MockStore的最简单实现也会出现以下错误:
NullInjectorError: R3InjectorError(CompilerModule)[MockStore -> MockStore]:
NullInjectorError: No provider for MockStore!
error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'MockStore', 'MockStore' ] })
我的代码如下:
import { TestBed } from '@angular/core/testing';
import { provideMockStore, MockStore } from '@ngrx/store/testing';
describe('Auth Guard', () => {
// @ts-ignore
let store: MockStore;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
// any modules needed
],
providers: [
provideMockStore(),
// other providers
],
});
store = TestBed.inject(MockStore);
});
it('should create', () => {
expect(store).toBeTruthy();
});
});
我在跑步@ngrx/store@8.6.0
更新
基于讨论CCD_ 1而不是CCD_。
原件
现在还为时过早,
在测试中获得:
it('should create', inject([Store], (store) => {
expect(store).toBeTruthy();
}));
不确定,但您可以尝试调用compileComponents。
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [
// any modules needed
],
providers: [
provideMockStore(),
// other providers
],
}).compileComponents();
store = TestBed.inject(MockStore);
});