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を置き換えます)。この問題の解決方法に関する提案をお願いします。
おかげで、私の代わりにcreateAsyncを使用しての私はにcreateComponentを使用しなければならないことを理解しています。しかし、私は 'comp = fixture.componentInstance'と書くべきですか? 'comp'が定義されていないというエラーが表示されます。 – Aiguo
答えを更新しました。これは、作成されたコンポーネントインスタンスを取得する方法の単なる例です。 –