Я использовал provideMockStore для модульного тестирования более чем одного селектора. Мне нужно переопределить MockStore для одного из тестовых случаев. Код выглядит следующим образом. Это не отменяет магазин. Я видел документацию там упоминается, что mockStore = TestBed.inject (MockStore). Выдает ошибку, которая гласит: «Свойство inject» не существует для типа «TestBedStati c» «@ angular / cli»: «~ 8.2.1», «@ ngrx / core»: «^ 1.2.0», "@ ngrx / Effects": "^ 8.2.0", "@ ngrx / entity": "^ 8.2.0", "@ ngrx / router-store": "^ 8.2.0", "@ ngrx / schematics" : "^ 8.2.0", "@ ngrx / store": "^ 8.2.0",
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();
}));