Angular 无法覆盖MockStore

Angular 无法覆盖MockStore,angular,ngrx,Angular,Ngrx,我使用provideMockStore对多个选择器进行单元测试。我需要覆盖其中一个测试用例的MockStore。代码如下。它没有覆盖存储。我在那里看过文档,其中提到mockStore=TestBed.inject(mockStore)。它抛出读取“类型“TestBedStatic”上不存在属性“inject”的错误 “@angular/cli”:“~8.2.1”, “@ngrx/core”:“^1.2.0”, “@ngrx/effects”:“^8.2.0”, “@ngrx/entity”:“^

我使用provideMockStore对多个选择器进行单元测试。我需要覆盖其中一个测试用例的MockStore。代码如下。它没有覆盖存储。我在那里看过文档,其中提到mockStore=TestBed.inject(mockStore)。它抛出读取“类型“TestBedStatic”上不存在属性“inject”的错误 “@angular/cli”:“~8.2.1”, “@ngrx/core”:“^1.2.0”, “@ngrx/effects”:“^8.2.0”, “@ngrx/entity”:“^8.2.0”, “@ngrx/路由器存储”:“^8.2.0”, “@ngrx/schematics”:“^8.2.0”, “@ngrx/store”:“^8.2.0”


TestBed.inject
是一个角度9函数


对于angular 8,请使用
TestBed.get

谢谢您的回复。我尝试了mockedStore=TestBed.get(MockStore);但出现了一个错误:NullInjectorError:没有MockStore的提供程序!您无法从v8中的
TestBed
获取
MockStore
(这是一个bug)。您必须获取存储并将其强制转换到MockStore.TestBed.get(存储)作为Mockstore@timdeschryver这个问题有没有被追踪到?@ChrisPaton
beforeEach(async(() => {
        TestBed.configureTestingModule({
            declarations: [
                RegisteredOwnerContainerComponent,
                RegisteredOwnerComponent,
                AddVehicleTitleComponent,
                SidePanelContentComponent,
                ExplanationComponent
            ],
            imports: [
                FlexLayoutModule,
                FormsModule,
                ReactiveFormsModule,
                MaterialModule,
                HttpClientTestingModule,
                BrowserAnimationsModule,
                LoggerModule.forRoot({ level: NgxLoggerLevel.INFO, disableConsoleLogging: false })
            ],
            providers: [
                { provide: ActivatedRoute, useValue: mockActivateRoute },
                { provide: Router, useValue: mockRouter },
                {
                    provide: EndorsementStateService,
                    useValue: {
                        navigateToNextStep: jasmine.createSpy('navigateToNextStep')
                    }
                },
                provideMockStore({
                    selectors: [
                        { selector: currentPolicySelector, value: currentPolicy },
                        { selector: currentVehicleSelector, value: currentVehicle }
                    ],
                }),
                CookieService
            ],
        }).compileComponents();
    }));

    beforeEach(async(() => {
        fixture = TestBed.createComponent(RegisteredOwnerContainerComponent);
        component = fixture.componentInstance;
        mockedStore = TestBed.get(Store);
        mockService = TestBed.get(EndorsementStateService);

        // mockedStore.select = jasmine.createSpy('select');
    }));

it('should return empty driver array if no PNI and SNI exist', fakeAsync(() => {
        mockedStore.overrideSelector(currentPolicySelector, currentPolicyWithoutPNIAndWithoutSNI);
        fixture.detectChanges();
    }));