2016-12-07 3 views
4

Ich habe das Angular-Tutorial https://angular.io/docs/ts/latest/guide/testing.html bearbeitet, um meine ersten Komponententests zu erstellen. Ich kann alles zum Laufen bringen, bis ich zum TestBed-Beispiel komme. Wenn ich TestBed in den Mix einfüge, bekomme ich 'Uncaught ReferenceError: Zone ist nicht definiert'.Angular2-Test mit TestBed Zone wird undefiniert Fehler

In meinem Spezifikationsbündel habe ich die Testbed-Umgebung deklariert und initialisiert.

Spec-Bündel

Error.stackTraceLimit = Infinity; 

require('phantomjs-polyfill'); 

require('core-js/es6'); 
require('core-js/es7/reflect'); 

// Typescript emit helpers polyfill 
require('ts-helpers'); 

// DO NOT REORDER: Dependency order needs to be strictly followed 
require('zone.js/dist/zone'); 
require('zone.js/dist/long-stack-trace-zone'); 
require('zone.js/dist/async-test'); 
require('zone.js/dist/fake-async-test'); 
require('zone.js/dist/sync-test'); 
require('zone.js/dist/proxy'); 
require('zone.js/dist/jasmine-patch'); 

// RxJS 
require('rxjs/Rx'); 

var testing = require('@angular/core/testing'); 
var browser = require('@angular/platform-browser-dynamic/testing'); 

testing.TestBed.initTestEnvironment(
    browser.BrowserDynamicTestingModule, 
    browser.platformBrowserDynamicTesting() 
); 

Object.assign(global, testing); 

window.__karma__ && require('./karma-require'); 

Testdatei

import { ComponentFixture, TestBed } from '@angular/core/testing'; 
import { SomeComponent } from './some.component'; 

let fixture: ComponentFixture<SomeComponent>; 

describe('Orders Component',() => { 

    let ordersComponentStub: SomeComponent; 

    beforeEach(() => { 
     TestBed.configureTestingModule({ 
      declarations: [SomeComponent] 

     }); 
    }); 

});

+0

Ja - ich bekomme das auch. Wie Tye sagt der Moment, ich frage nach einem Testmodul - TestBed.configureTestingModule der Test fehlschlägt mit Zone nicht definiert. Ich laufe Angular 2.1.1 –

Antwort

1

Ich habe dies in meinem Projekt behoben, indem ich folgendes zu meiner Konfiguration hinzugefügt habe. ich Wallaby.js bin mit so dieses Problem zu beheben habe ich die folgende Zeile in meinem module.exports

{Muster: 'node_modules/zone.js/dist/zone.js', enthalten: true, beobachtete: true }

Wenn Sie etwas wie Karma verwenden, sollte die gleiche Lösung gelten.

+0

Ich ziehe bereits die zone.js Datei als Teil meines Spezifikationsbündels ein. Ich habe versucht, die Datei zone.js direkt in die Datei karma.config zu verschieben, und es traten zusätzliche Fehler bezüglich der Reihenfolge auf, in der die Versprechen importiert werden. Ich habe auch versucht, die Karma.config zu aktualisieren, um die Uhr und Include-Einrichtung, die Sie zur Verfügung gestellt haben, anzupassen, kein Glück. – Tye2545

Verwandte Themen