gpt4 book ai didi

unit-testing - 使用 TestBed 进行 Angular2 测试时出现未定义区域错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:12 24 4
gpt4 key购买 nike

我一直在研究 Angular 教程 https://angular.io/docs/ts/latest/guide/testing.html构建我的第一个单元测试。在进入 TestBed 示例之前,我能够让一切正常工作。当我将 TestBed 添加到组合中时,我得到“Uncaught ReferenceError: Zone is not defined”。

在我的 spec-bundle 中,我声明并初始化了 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]

});
});

});

最佳答案

我通过在我的配置中添加以下内容在我的项目中解决了这个问题。我正在使用 Wallaby.js,所以为了解决这个问题,我将以下行添加到我的 module.exports

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

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

关于unit-testing - 使用 TestBed 进行 Angular2 测试时出现未定义区域错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com