web-dev-qa-db-de.com

Angular 4 testing - [object ErrorEvent] wird ausgelöst

Ich bin gerade dabei, den Prüfstand für meine Winkelanwendung abzuschließen. Beim Karma-Jasmin-Test gibt es jedoch ein Problem, das einen Fehler auslöst

[object ErrorEvent] wurde ausgelöst

Ich habe das node_modules als eine Lösung aktualisiert, die ich in dem folgenden Link gefunden habe Wie debugge ich einen Fehler "[object ErrorEvent] geworfen" in meinen Karma/Jasmin-Tests?

Aber jetzt werden Fehler zu zufälligen Zeiten ausgelöst, manchmal ist das Testbett ohne Fehler abgeschlossen, manchmal über Fehlerauslöser. Irgendwelche Vorschläge, um es dauerhaft zu vermeiden?

PS - Lassen Sie mich in den Kommentaren wissen, ob Sie mehr Ressourcen benötigen. Vielen Dank!

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

Ich hatte das gleiche Problem und es stellte sich heraus, dass das Upgrade auf Jasmin-Core 3.0.0 das Problem verursachte, also habe ich ein Downgrade auf 2.5.2 durchgeführt und alles hat gut funktioniert. Ich denke das liegt daran, dass karma-jasmine ist noch nicht kompatibel mit jasmine 3.0.0

Das habe ich jetzt:

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

Weitere Informationen zu diesem Problem finden Sie unter:

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

3
Nadhir Falta

Ich hatte dasselbe Problem und die afterAll () - Methode löste mein Problem. meine Lösung ist hier

afterAll(() => {
 TestBed.resetTestingModule();
});
0