2017-02-15 64 views
3

有类似的情况,但上面的修复程序不起作用。这里是我的情况下的目录树。表单是应用程序的子组件。失败测试角度2应用程序

directory structure app

的app.component.html:

<div class="jumbotron">                   
    <div class="container">                   
     <h1>Simple Curl request</h1>                 
    </div>                       
</div>                        
<div class="container">                   
    <app-form></app-form>                   
</div> 

它基本上调用子组件 '形式'。 而在我们称之为[formGroup]和类似的错误如上所述。

它失败,错误:

Can't bind to 'formGroup' since it isn't a known property of 'form'."

的form.component.ts包含标题:

import { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms'; 

的form.component.html包含:

<div class="card-block">                 | 
     <form [formGroup]="cform" (ngSubmit)="doRequest($event)">        | 
     <div class="card form-group">               | 
      <div class="card-header">               | 
      Authentication                 | 
      </div>                    | 
      <div class="card-block">               | 
      <div class="form-group" formGroupName="authentication">       | 
       <label for="">Type</label>              | 
       <select formCon .... 

还有你看到的formGroup提到.... 功能上没有问题,但测试箱失败s ...... 为什么????????

+1

可能重复[无法绑定到'formGroup',因为它不是'form'的已知属性](http://stackoverflow.com/questions/39152071/cant-bind-to-formgroup-since -it-isnt-a-known-property-of-form) – Adam

+0

您是否将'FormModule'导入到您的测试模块中? – Adam

+0

'从'@ angular/forms'导入{FormsModule,ReactiveFormsModule};'编辑:Adam速度更快,但是您应该尝试导入FormsModule(和ReactiveFormsModule,如果使用的话) – mickdev

回答

2

当你正在做测试配置你模块配置不加载,所以要确保你告诉所有什么需要测试配置要加载

TestBed.configureTestingModule({ 
     declarations: [Component1, Component2IfUsed], 
     providers: [ApiService 
     MockBackend, BaseRequestOptions], 
     imports: [ 
     FormsModule, 
     ReactiveFormsModule 
     ] 
    }) 

所以基本上在测试配置,您必须提供所有需要的信息依赖注入。

+0

非常感谢Volodymyr。这应该在核心角度框架文档中详细记录,但事实并非如此。使其变得困难和混乱。我正在使用angular-cli来设置组件... – user1102171

+0

它与CLI无关,想法是当你测试你需要知道什么引导时,因为你会模拟一些模块。 –

+0

我知道角度cli与它无关。但是,当您创建一个默认生成代码的工具时,它应生成导致自动报告成功运行的模板。从这个观点来看,该工具实用程序将会增加。角度不是这样的情况... – user1102171