2016-09-11 21 views
0

私はangular2-cliを使用してプロジェクトを作成しています。この仕様ファイルは、自分のコンポーネントの1つに対してcliによって自動的に作成されます。私は自分のアプリをrc4にアップグレードして以来、このテストファイルを実行するとこの問題に遭遇しました。以下は、specファイルです:プロパティ 'createAsync'がタイプ 'TestBed'に存在しません

import { 
inject, ComponentFixture, TestBed 
} from '@angular/core/testing'; 
import { Component } from '@angular/core'; 
import { By } from '@angular/platform-browser'; 
import { MockComponent } from './mock.component'; 

describe('Component: Mock',() => { 
let builder: TestBed; 

beforeEachProviders(() => [MockComponent]); 
beforeEach(inject([TestComponentBuilder], function (tcb: TestComponentBuilder) { 
builder = tcb; 
})); 

it('should inject the component', inject([MockComponent], 
    (component: MockComponent) => { 
expect(component).toBeTruthy(); 
})); 

it('should create the component', inject([],() => { 
return builder.createAsync(MockComponentTestController) 
    .then((fixture: ComponentFixture<any>) => { 
    let query = fixture.debugElement.query(By.directive(MockComponent)); 
    expect(query).toBeTruthy(); 
    expect(query.componentInstance).toBeTruthy(); 
    }); 
})); 
}); 

@Component({ 
selector: 'test', 
template: ` 
<test></test> 
`, 
directives: [MockComponent] 
}) 
class MockComponentTestController { 
} 

上記specファイルは「createAsync」に関するエラーがスローされますが、私はcreateAsyncはテストベッド上に存在しないことをかなり確信しているが、私は(TestComponentBuilderはRC4に廃止されましたテストベッドでTestComponentBuilderを置き換えます)。この問題の解決方法に関する提案をお願いします。

答えて

1

それはcreateComponent次のようになります。助けを

fixture = TestBed.createComponent(AppComponent); 
let comp = fixture.componentInstance; 
+0

おかげで、私の代わりにcreateAsyncを使用しての私はにcreateComponentを使用しなければならないことを理解しています。しかし、私は 'comp = fixture.componentInstance'と書くべきですか? 'comp'が定義されていないというエラーが表示されます。 – Aiguo

+0

答えを更新しました。これは、作成されたコンポーネントインスタンスを取得する方法の単なる例です。 –

関連する問題