正在测试ngrx存储:没有MockStore的提供程序



我遵循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);
});

最新更新