Я использую angular2-cli для создания проектов, и этот файл spec автоматически создается cli для одного из моих компонентов. Я обновил свое приложение до rc4, и с тех пор я сталкивался с этой проблемой при запуске этого тестового файла. Ниже приведен файл спецификация:Свойство '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 {
}
выше спецификация файл выдает ошибку на «createAsync», я уверен, что createAsync не существует на Testbed, но я заменил TestComponentBuilder с Testbed (TestComponentBuilder устарели в rc4). Просьба представить предложения о том, как решить эту проблему.
спасибо за помощь, я понимаю, что вместо использования createAsync я должен использовать createComponent. Но где я должен написать 'comp = fixture.componentInstance'? Он выдает сообщение об ошибке «comp» не определен. – Aiguo
Я обновил свой ответ. Это просто пример того, как получить экземпляр созданного компонента. –