NullInjectorError: нет поставщика для теста маршрутизатора в Angular - PullRequest
0 голосов
/ 18 февраля 2020

Я использую ниже component.ts, получаю ниже ошибку

StaticInjectorError (DynamicTestModule) [UploadDocumentsLoginContainerComponent -> Router]: StaticInjectorError (Платформа: ядро) [UploadDocumentsLoginContainerComponent -> Router]: NoterInter: NullIn !

export class UploadDocumentsLoginContainerComponent implements OnInit {
constructor(
    private fb: FormBuilder,
    private loanStore: Store<LoanState>,
    private router: Router,
    **private activateRoute: ActivatedRoute,**
    private urlProviderService: UrlProviderService
  ) {
    this.activateRoute.queryParams.subscribe(params => {
      this.isMyAccountRequest = params[IS_MY_ACCOUNT];
    });
  }

  ngOnInit() {}

  //on button click
   routeSignin() {
    if (this.isMyAccountRequest) {
      this.router.navigate(['/home']);
    }
  }
}

Контрольный пример:

import {
  async,
  ComponentFixture,
  fakeAsync,
  TestBed
  } from '@angular/core/testing';
  import { ReactiveFormsModule } from '@angular/forms';
import { Router } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
describe('UploadDocumentsLoginContainerComponent', () => {
  let component: UploadDocumentsLoginContainerComponent;
  let fixture: ComponentFixture<UploadDocumentsLoginContainerComponent>;
  let router: Router;
  beforeEach(async(() => {
    return TestBed.configureTestingModule({
      declarations: [
        UploadDocumentsLoginContainerComponent
      ],
      imports: [
        NgbModule,
        ReactiveFormsModule,
        RouterTestingModule.withRoutes(routes)
      ]
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(UploadDocumentsLoginContainerComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });
  router = TestBed.get(router);
  it('should create', () => {
    expect(component).toBeTruthy();
  });

  it('navigate to "" redirects to /register', () => {
    router.navigate(['/register']);
  });
});

Чтобы устранить вышеуказанную ошибку, я добавил ниже маршрутизатор.

private router: Router

Позже получаю еще одну ошибку

UploadDocumentsContainerComponent √ должен создать безголовый Chrome 75.0.3770 (Windows 10.0.0) ERROR {"message": "возникла ошибка afterAll \ nError: Невозможно вызвать Promise.then из теста syn c

Подскажите, пожалуйста, как устранить эту ошибку в тестовом примере?

...