gpt4 book ai didi

angular - 在测试中使用 fakeAsync 会导致 Angular 4 和 Zone.js 出错

转载 作者:行者123 更新时间:2023-12-02 03:51:39 26 4
gpt4 key购买 nike

我正在使用 Angular 4.3.1zone.js 0.8.14我正在运行我的测试, karmawebpack每当我使用 fakeAsync 时,我都会在测试中遇到这个奇怪的错误并勾选与时间相关的测试。

测试用例:

it('should call the function which is given as parameter', fakeAsync(() => {
autoRefreshService.start();
expect(spyFn).not.toHaveBeenCalled();
tick(1);
expect(spyFn).toHaveBeenCalled();
}));

测试调用文件:

require('core-js/es6');
require('core-js/es7/reflect');
require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/proxy');
require('zone.js/dist/sync-test');
require('zone.js/dist/jasmine-patch');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');
import { TestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';

TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
const context = (require as any).context('./', true, /\.spec\.ts$/);
context.keys().map(context);

我得到的错误是:

Chrome 59.0.3071 (Mac OS X 10.12.5) CallbackRepeaterService start should not start if no callback set FAILED
TypeError: Right-hand side of 'instanceof' is not an object
at Object.<anonymous> (src/test.ts:25139:49)
at ZoneDelegate.invoke (src/test.ts:86299:26)
at ProxyZoneSpec.onInvoke (src/test.ts:88697:39)
at ZoneDelegate.invoke (src/test.ts:86298:32)
at Zone.run (src/test.ts:86049:43)
at Object.<anonymous> (src/test.ts:88992:34)
at ZoneQueueRunner.jasmine.QueueRunner.ZoneQueueRunner.execute (src/test.ts:89020:42)

错误消息必须与fakeAsync相关,因为如果我删除它,它不会提示。

这里可能出现什么问题?

最佳答案

所以问题是我需要将 import 'zone.js/dist/fake-async-test'; 添加到测试入口文件中。

关于angular - 在测试中使用 fakeAsync 会导致 Angular 4 和 Zone.js 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255022/

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