Unit testing Angular2测试与测试台获取区域未定义错误
我一直在学习Angular教程来构建我的第一个单元测试。在到达测试台示例之前,我能够让一切正常工作。当我将测试床添加到混合中时,我得到“未捕获引用错误:未定义区域” 在我的规范包中,我声明并初始化了测试床环境 规范包Unit testing Angular2测试与测试台获取区域未定义错误,unit-testing,typescript,jasmine,karma-runner,testbed,Unit Testing,Typescript,Jasmine,Karma Runner,Testbed,我一直在学习Angular教程来构建我的第一个单元测试。在到达测试台示例之前,我能够让一切正常工作。当我将测试床添加到混合中时,我得到“未捕获引用错误:未定义区域” 在我的规范包中,我声明并初始化了测试床环境 规范包 Error.stackTraceLimit = Infinity; require('phantomjs-polyfill'); require('core-js/es6'); require('core-js/es7/reflect'); // Typescript emi
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]
});
});
从'@angular/core/testing'导入{ComponentFixture,TestBed};
从“./some.component”导入{SomeComponent};
let夹具:组件夹具;
描述('订单组件',()=>{
让ordersComponentStub:SomeComponent;
在每个之前(()=>{
TestBed.configureTestingModule({
声明:[组件]
});
});
})) 我在项目中通过将以下内容添加到配置中修复了此问题。 我使用的是Wallaby.js,所以为了解决这个问题,我在module.exports中添加了以下行
{pattern: 'node_modules/zone.js/dist/zone.js', included: true, watched: true}
如果你在使用类似于因果报应的东西,同样的解决方案也应该适用。是的,我也明白了。正如Tye所说,当我请求一个测试模块TestBed.configureTestingModule时,测试失败,区域未定义。我正在运行Angular 2.1.1,我已经将zone.js文件作为我的规范包的一部分。我试图将zone.js直接移动到karma.config,但在导入承诺的顺序方面遇到了其他错误。我还尝试更新karma.config以匹配手表,并包括您提供的设置,没有这样的运气。您能显示您的wallaby.js文件示例吗?你到底把它放在哪里了?我想它会进入文件属性?