2017-02-15 60 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