web-dev-qa-db-fra.com

Angular 4 tests - [objet ErrorEvent] levé

Je suis en train de terminer le banc d'essai pour mon application angulaire. Mais il y a un problème dans les tests de karma-jasmin, qui jette une erreur

[objet ErrorEvent] levé

J'ai mis à jour les node_modules en tant que solution trouvée dans le lien suivant Comment déboguer une erreur "[object ErrorEvent] levée" dans mes tests Karma/Jasmine?

Mais maintenant, l'erreur se déclenche à des moments aléatoires, parfois le banc d'essai est terminé sans erreur, parfois au-dessus des déclencheurs d'erreur. Des suggestions pour l'éviter en permanence?

PS - Faites-moi savoir dans les commentaires si vous avez besoin de plus de ressources. Merci!

SomeComponent.spec.ts

import { RouterTestingModule } from '@angular/router/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgModule } from '@angular/core';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

import { SomeComponent } from './some.component';
import { HttpLoaderFactory } from '../app.module';
import { AppRoutingModule } from '../app-routing.module';    
import { SomeService } from './../services/some.service';

describe('SomeComponent', () => {
  let component: SomeComponent;
  let fixture: ComponentFixture<SomeComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        TranslateModule.forRoot({
          loader: {
            provide: TranslateLoader,
            useFactory: HttpLoaderFactory,
            deps: [HttpClient]
          }
        }),
        HttpClientModule,
        AppRoutingModule,
        FormsModule,
        ReactiveFormsModule ,
        RouterTestingModule,
        NgbModule.forRoot(),
        FormsModule, 
        ReactiveFormsModule,
      ],
      declarations: [
        SomeComponent
       ],
      providers: [
        SomeService
       ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(SomeComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});
5
Lakindu Gunasekara

J'avais le même problème et il s'est avéré que la mise à niveau vers jasmine-core 3.0.0 était la cause du problème, alors je suis passé à la version 2.5.2 et tout a bien fonctionné ... Je pense que c'est parce que karma-jasmine n'est pas encore compatible avec jasmine 3.0.0

C'est ce que j'ai maintenant:

"jasmine": "2.5.2",
"jasmine-core": "2.5.2",
"karma-jasmine": "1.1.2",

Pour plus de détails sur le problème, voir: 

https://github.com/jasmine/jasmine/issues/1523

3
Nadhir Falta

J'ai eu le même problème aussi et la méthode afterAll () a résolu mon problème. ma solution est ici

afterAll(() => {
 TestBed.resetTestingModule();
});
0
Samet ÇELİKBIÇAK