Angular 4测试 - 抛出[object ErrorEvent]

时间:2018-01-05 04:38:31

标签: angular testing karma-jasmine testbed

我正在为我的角度应用完成测试台。但是在业力茉莉花测试中存在一个问题,它会引发错误

  

[object ErrorEvent]抛出

我将node_modules更新为我在以下链接中找到的解决方案 How do I debug a "[object ErrorEvent] thrown" error in my Karma/Jasmine tests?

但现在错误随机出现,有时候测试床没有任何故障,有时会出现错误触发。有任何建议可以永久避免它吗?

PS - 如果您需要更多资源,请在评论中告诉我。谢谢!

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();
  });
});

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,afterAll()方法解决了我的问题。 my solution is here

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