如何测试包含<mat-checkbox>的ReactiveForm?

时间:2017-11-10 10:07:02

标签: angular angular-material2

我在ReactiveForm中设置<mat-checkbox>时遇到问题,并且在测试时获取没有用于表单控件的值访问器[...]

当我在开发模式下运行应用程序时,它按预期工作。

使用时:

<mat-checkbox
  id="allDay"
  type="checkbox"
  formControlName="allDay">
    <!-- i18n: @@event.allDay -->All Day Event?<!-- /i18n -->
</mat-checkbox>

运行npm test时出现此错误:

  

失败:没有名称为'allDay'的表单控件的值访问器   错误:没有名称为'allDay'的表单控件的值访问器         at _throwError /node_modules/@angular/forms/@angular/forms.es5.js:1918:1)         at setUpControl /node_modules/@angular/forms/@angular/forms.es5.js:1828:1)         在FormGroupDirective.webpackJsonp ... / .. / .. / forms/@angular/forms.es5.js.FormGroupDirective.addControl   /node_modules/@angular/forms/@angular/forms.es5.js:4808:1)         在FormControlName.webpackJsonp ... / .. / .. / forms/@angular/forms.es5.js.FormControlName._setUpControl   /node_modules/@angular/forms/@angular/forms.es5.js:5396:1)         在FormControlName.webpackJsonp ... / .. / .. / forms/@angular/forms.es5.js.FormControlName.ngOnChanges   /node_modules/@angular/forms/@angular/forms.es5.js:5314:1)         at checkAndUpdateDirectiveInline /node_modules/@angular/core/@angular/core.es5.js:10845:1)         at checkAndUpdateNodeInline /node_modules/@angular/core/@angular/core.es5.js:12349:1)         at checkAndUpdateNode /node_modules/@angular/core/@angular/core.es5.js:12288:1)         在debugCheckAndUpdateNode /node_modules/@angular/core/@angular/core.es5.js:13149:22)         在debugCheckDirectivesFn /node_modules/@angular/core/@angular/core.es5.js:13090:1)

但是代码适用于其他<mat-form-field>而没有任何问题:

<mat-form-field>
  <input
    matInput
    type="text"
    formControlName="name">
</mat-form-field>

我的组件测试中是否有必须提供的内容?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

我忘了在我的规范中添加Angular Material依赖项:

{{1}}