由于异步区域中的setInterval错误,无法使用highcharts w/jasmine测试组件

由于异步区域中的setInterval错误,无法使用highcharts w/jasmine测试组件,highcharts,angular,jasmine,Highcharts,Angular,Jasmine,我正在尝试为使用highcharts的组件编写ng2 karma/jasmine测试。我正在使用ng2 RC4和当前的jasmine/karma 它有一个错误(如下所示,两个测试都有相同的错误)。我认为异步区域内的setInterval是不可行的,但是highcharts在所有地方都使用setInterval(下面显示的一个示例)&我不知道如何测试这个组件 有人知道我应该如何写这个测试的链接或信息吗 Failed: Cannot use setInterval from within an as

我正在尝试为使用highcharts的组件编写ng2 karma/jasmine测试。我正在使用ng2 RC4和当前的jasmine/karma

它有一个错误(如下所示,两个测试都有相同的错误)。我认为异步区域内的setInterval是不可行的,但是highcharts在所有地方都使用setInterval(下面显示的一个示例)&我不知道如何测试这个组件

有人知道我应该如何写这个测试的链接或信息吗

Failed: Cannot use setInterval from within an async zone test.
Error: Cannot use setInterval from within an async zone test.
    at AsyncTestZoneSpec.eval [as _failCallback] (/Users//projects/g5-dashboard/dist/vendor/@angular/core/testing/async.js:34:38 <- ../../../../modules/@angular/core/testing/async.ts:37:27)
    at AsyncTestZoneSpec.onScheduleTask (/Users//projects/g5-dashboard/dist/vendor/zone.js/dist/async-test.js:93:23)
    at ZoneDelegate.scheduleTask (/Users//projects/g5-dashboard/dist/vendor/zone.js/dist/zone.js:333:50)
    at Zone.scheduleMacroTask (/Users//projects/g5-dashboard/dist/vendor/zone.js/dist/zone.js:273:40)
    at /Users//projects/g5-dashboard/dist/vendor/zone.js/dist/zone.js:1290:26
    at setInterval (eval at createNamedFn (/Users//projects/g5-dashboard/dist/vendor/zone.js/dist/zone.js:982:18), <anonymous>:3:38)
    at Object.run (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:240:33)
    at animate (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:1385:16)
    at Object.animate (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:2114:17)
    at Object.drawChartBox (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:12985:26)
    at Object.redraw (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:12266:23)
    at Object.update (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:16464:23)
    at Object.setCategories (/Users//projects/g5-dashboard/dist/vendor/highcharts/highstock.src.js:16512:18)
    at BarChartComponent.reload_chart (/Users//projects/g5-dashboard/dist/app/shared_components/bar_chart.component.js:111:38
失败:无法在异步区域测试中使用setInterval。
错误:无法在异步区域测试中使用setInterval。

在AsyncTestZoneSpec.eval[作为_failCallback](/Users//projects/g5 dashboard/dist/vendor/@angular/core/testing/async.js:34:38 Highcharts在其动画中使用setInterval。您可以通过将chart.animation和series.animation设置为false来禁用动画:这家伙显然通过返回承诺来解决问题……甚至不确定这是一个可接受的解决方法:
describe('InteractionBreakdownComponent', () => {
  let fixture: ComponentFixture<any>;
  let component: InteractionBreakdownComponent;

  beforeEach(() => {
    addProviders([
      { provide: Router, useClass: MockRouter },
      { provide: ReportsRouteParamService, useClass: MockParamsService },
      { provide: InteractionBreakdownService, useClass:          MockBreakdownReportService }
    ]);
  });

  beforeEach(async(inject([TestComponentBuilder], (tcb:  TestComponentBuilder) => {
    return tcb.createAsync(InteractionBreakdownComponent)
    .then((fix: ComponentFixture<any>) => {
       fixture = fix;
       component = fix.componentInstance;
    }, err => console.error(err));
  })));

  it('can be created', () => {
    fixture.detectChanges();
    expect(component).toBeTruthy();
  });

  it('sets up params correct', () => {
    fixture.detectChanges();
    expect(component.start_date).toBe('2015-06');
    expect(component.end_date).toBe('2015-09');
  });
   ...