Компоненты, которые внедряют `FirebaseApp`, приводят к сообщению` Нет поставщика для FirebaseApp` при запуске тестов - PullRequest
0 голосов
/ 29 апреля 2018

При запуске ng test для моего приложения на Angular я получаю это сообщение об ошибке для компонентов, которым FirebaseApp из angularfire2 вставлено в конструктор.

enter image description here

Я знаю, что для обычной службы я бы добавил эти службы в массив providers для этого файла спецификации компонента или, если бы это была служба http, я мог бы добавить HttpClientModule к imports для этого файла спецификации но что мне делать для Firebase?

Попытка сделать это безуспешно:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        AngularFireModule.initializeApp(environment.firebase)
      ],
      declarations: [
        BlogPostComponent,
        HeaderComponent,
        FooterComponent
      ]
    }).compileComponents();

    fixture = TestBed.createComponent(BlogPostComponent);
    component = fixture.componentInstance;
    element = fixture.nativeElement;
    de = fixture.debugElement;

    fixture.detectChanges();
  }));

1 Ответ

0 голосов
/ 29 апреля 2018

вам нужно положить FirebaseApp в ствол провайдера в вашей спецификации

  declarations: [
    ...
  ],
  providers: [FirebaseApp]

, и если вам нужно вывести значения для этого приложения, вы можете сделать это следующим образом

  declarations: [
    ...
  ],
  providers: [{ provide: FirebaseApp, useValue: someStubHere }]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...