[ngModelOptions] =“{standalone:true}”的角度单元测试失败

时间:2017-02-07 09:57:27

标签: javascript unit-testing angular angular2-template

我的angular2单元测试代码因下面的回溯而失败。我知道这是因为没有将formControlName属性添加到FormGroup内的input标记。

但我在该特定代码中添加了[ngModelOptions]="{standalone: true}"

<md-slide-toggle [(ngModel)]="isAvailable" color="primary" [ngModelOptions]="{standalone: true}">
</md-slide-toggle>

它在主站点中运行良好,但在测试时,它显示

PhantomJS 2.1.1 (Linux 0.0.0): Executed 39 of 65 (1 FAILED) (0 secs / 1.391 secs)
PhantomJS 2.1.1 (Linux 0.0.0) VehicleFormComponent should create FAILED
    Error: Error in ./VehicleFormComponent class VehicleFormComponent - inline template:41:63 caused by: No value accessor for form control with unspecified name attribute in src/test.ts (line 98781)
    _throwError@webpack:///~/@angular/forms/src/directives/shared.js:122:0 <- src/test.ts:15986:48

1 个答案:

答案 0 :(得分:1)

正如您可能知道的那样,如果您未指定

,则会出现错误
[ngModelOptions]="{standalone: true}

如下:

enter image description here

所以另一个选择是设置name属性。您当前的错误:

... form control with unspecified name attribute...

似乎与上图中的错误非常相似。 IF 如果您使用ngModelOptionsname属性无关紧要,可以尝试删除ngModelOptions并插入name 。从功能上讲,这不会以任何方式改变代码的执行,因此在我看来这是一个非常可行的选择( 如果 它有效)