2016-12-07 4 views
4

私は最初のユニットテストを作成するためにAngularチュートリアルhttps://angular.io/docs/ts/latest/guide/testing.htmlを作成しました。私がTestBedの例に達するまで、私は働くためのすべてを得ることができます。私がTestBedをミックスに追加すると、「Uncaught ReferenceError:Zone is not defined」というメッセージが表示されます。TestBedでZone2を取得するAngular2テストでエラーが発生しました。

私の仕様バンドルIゾーンでは、Testbed環境を宣言して初期化しました。

仕様束

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'); 

テストファイル

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

ええええええええええええええええ。私がテストモジュール - TestBed.configureTestingModuleを要求する瞬間をTyeが言っているので、テストはゾーンが定義されていないと失敗します。私は角2.1.1を実行しています –

答えて

1

私の設定に以下を追加することで、これをプロジェクトに修正しました。 この問題を解決するためにWallaby.jsを使用しています。次の行をmodule.exportsに追加しました。

{pattern: 'node_modules/zone.js/dist/zone.js':true、watched:true }

カルマのようなものを使用している場合は、同じ解決策を適用する必要があります。

+0

私はすでに仕様バンドルの一部としてzone.jsファイルを取得しています。 zone.jsをkarma.configに直接移動しようとしましたが、約束事がインポートされる順序に関する追加のエラーが発生しました。私もkarma.configを時計に合わせて更新しようとしました。あなたが提供した設定を含めてください。そのような運はありません。 – Tye2545

関連する問題