Angular2测试带有测试床获得区域不确定误差



我一直在Angular教程https://angular.io/docs/ts/latest/guide/guide/testing.html工作以构建我的第一个单元测试。我能够让所有事情都可以工作,直到我进入测试床示例。当我将测试添加到混合物中时,我会得到"未定义的参考:区域未定义"。

在我的规格I区域中声明并初始化了测试台环境。

spec-bundle

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

});

我通过将以下内容添加到我的配置中,将其修复。我正在使用wallaby.js,因此要解决此问题,我将以下行添加到我的模块。Exports

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

如果您使用的是Karma之类的东西,则应适用相同的解决方案。

最新更新