gpt4 book ai didi

angular - 升级后将 Angular 10.2 与 Jest 一起使用时,ngx-quill 测试失败

转载 作者:行者123 更新时间:2023-12-04 08:24:14 27 4
gpt4 key购买 nike

使用组件 quill-editor 从 Angular 9.x 升级到 Angular 10.x 组件的所有规范来自 ngx-quill加载失败。
这是由标准 Angular Testing 产生的:

    it('should create', () => {
expect(component).toBeTruthy();
});
这是他们产生的错误信息:
 FAIL   my-project  src/(...)/my-component.spec.ts
● Test suite failed to run

Call retries were exceeded

at ChildProcessWorker.initialize (node_modules/jest-worker/build/workers/ChildProcessWorker.js:193:21)
当我们的 View 有一个简单的 quill 编辑器使用时,就会发生这种情况:
<quill-editor formControlName="myControlName"></quill-editor>
(评论或删除此行允许测试通过)
以前用 jest.mock 模拟模块 quill通话就足够了:
jest.mock('quill');
但现在测试失败了......
我们加载 QuillModule在共享组件中并根据需要导入此共享组件:
@NgModule({
declarations: [],
imports: [
QuillModule.forRoot({
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'],
],
},
}),
],
exports: [QuillModule],
})
export class QuillEditorModule {}

最佳答案

我们最终模拟了模块 QuillEditorModule使用我们的包装器模块在所有规范文件中开 Jest :
确保它出现在 ..spec.ts 的顶部文件我们能够 stub ngx-quill 模块及其使用的组件选择器“quill-editor”,并且所有测试再次通过:

import { QuillEditorModuleStub } from 'src/(my-app-paths)/quill-editor.module.stub';

jest.mock(`src/(my-app-paths)/quill-editor.module`, () => ({
__esModule: true,
QuillEditorModule: QuillEditorModuleStub,
}));
stub 组件
import { Component, forwardRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';

@Component({
selector: 'quill-editor',
template: '',
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => QuillEditorComponentStub),
multi: true,
},
],
})
export class QuillEditorComponentStub implements ControlValueAccessor {
registerOnChange(fn: any): void {}

registerOnTouched(fn: any): void {}

writeValue(obj: any): void {}
}
stub 模块:
import { NgModule } from '@angular/core';
import { QuillEditorComponentStub } from './quill-editor-component.stub';

@NgModule({
declarations: [QuillEditorComponentStub],
exports: [QuillEditorComponentStub],
})
export class QuillEditorModuleStub {}

关于angular - 升级后将 Angular 10.2 与 Jest 一起使用时,ngx-quill 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65350238/

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