Angular 角度测试在反应式表单上提交事件 上下文

Angular 角度测试在反应式表单上提交事件 上下文,angular,typescript,jasmine,karma-runner,karma-jasmine,Angular,Typescript,Jasmine,Karma Runner,Karma Jasmine,我有一个基本形式(反应形式)的组件。我尝试在这个表单上测试submit事件,看看它是否正确调用了必要的方法 我的问题 我无法触发表单的提交事件 文件夹 Component.html 发送表格 组件技术 组件规范ts 我还尝试了在表单上调用submit: fixture.debugElement.query(By.css('button')).triggerEventHandler('click', null); 如何触发表单提交事件?第一个选项是直接调用ngSubmit: .trigger

我有一个基本形式(反应形式)的组件。我尝试在这个表单上测试submit事件,看看它是否正确调用了必要的方法

我的问题 我无法触发表单的提交事件

文件夹 Component.html

发送表格
组件技术 组件规范ts 我还尝试了在表单上调用
submit

fixture.debugElement.query(By.css('button')).triggerEventHandler('click', null);

如何触发表单提交事件?

第一个选项是直接调用
ngSubmit

.triggerEventHandler('ngSubmit', null); 
第二个选项是导入
ReactiveFormsModule
,该模块将在表单上内部设置
submit
处理程序。因此,您的触发方法应该有效:

TestBed.configureTestingModule({
      declarations: [
        MyComponent
      ],
      imports: [ReactiveFormsModule], // <== import it
      providers: []
TestBed.configureTestingModule({
声明:[
真菌成分
],

导入:[反应表单模块],//谢谢,它可以工作。我导入了ReactiveFormsModule和FormsModule以避免
没有ControlContainer的提供程序
错误。你知道为什么触发我的submit按钮不起作用吗?它不起作用,因为submit事件没有处理程序,因为没有指令来处理它,因为你没有导入R每个包含此指令的活动模板模块谢谢,它听起来合法。它可能会令人失望,但它没有警告我们这一点。。。
.triggerEventHandler('ngSubmit', null); 
TestBed.configureTestingModule({
      declarations: [
        MyComponent
      ],
      imports: [ReactiveFormsModule], // <== import it
      providers: []