【发布时间】:2017-04-23 00:44:08
【问题描述】:
我一直在学习 Angular 教程 https://angular.io/docs/ts/latest/guide/testing.html 来构建我的第一个单元测试。在我到达 TestBed 示例之前,我能够让一切正常工作。当我将 TestBed 添加到组合中时,我得到“未捕获的 ReferenceError:未定义区域”。
在我的规范包中,我区域声明并初始化了 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]
});
});
});
【问题讨论】:
-
是的 - 我也收到了。正如泰伊所说,当我要求测试模块时 - TestBed.configureTestingModule 测试失败,区域未定义。我正在运行 Angular 2.1.1
标签: unit-testing typescript jasmine karma-runner testbed