私はAngular2テストチュートリアルを実行しています。私はJasmine/Karmaにはかなり新しいので、これは基本的なものかもしれません。ここでAngular2カルマテストランナーがリロードされない
ERROR in C:/dev/unittest1/src/app/banner-inline/banner-inline.component.spec.ts (12,11): Cannot find name 'HTMLElement'.)
はスペックコードです(ほとんどちょうどから撮影:私は変更を加えた場合、テストランナーがエラーをリロードしようとしますが、取得することを実行している「NPMテスト」を持ってたら気づきました'@ angular/core/testing'からのimport {ComponentFixture、TestBed、ComponentFixtureAutoDetect}; ):
import(By)から '@ angular/platform-browser'; '{angle/core'から{DebugElement}をインポートします。
import { BannerInlineComponent } from './banner-inline.component';
describe('BannerInlineComponent (inline template)',() => {
let comp: BannerInlineComponent;
let fixture: ComponentFixture<BannerInlineComponent>;
let de: DebugElement;
let el: HTMLElement;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [BannerInlineComponent], // declare the test component
providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }]
});
fixture = TestBed.createComponent(BannerInlineComponent);
comp = fixture.componentInstance; // BannerInlineComponent test instance
// query for the title <h1> by CSS element selector
de = fixture.debugElement.query(By.css('h1'));
el = de.nativeElement;
});
it('should display original title',() => {
expect(el.textContent).toContain(comp.title);
});
it('should still see original title after comp.title change',() => {
const oldTitle = comp.title;
comp.title = 'Test Title';
fixture.detectChanges();
// Displayed title is old because Angular didn't hear the change :(
expect(el.textContent).toContain(oldTitle);
});
it('should display updated title after detectChanges',() => {
comp.title = 'Test Title';
fixture.detectChanges(); // detect changes explicitly
expect(el.textContent).toContain(comp.title);
});
});
テストランナーを停止して再起動すると、すべて正常に動作します。なぜこのエラーが発生するのですか?どうすればそれを防ぐことができますか?
あなたはspecファイル、それは自己が、それは、フィンにできISNOTことを指定するエラーを投稿してくださいすることができHTML要素と呼ばれる仕様ファイルの必須属性特定のトリガーに基づいて仕様ファイルを参照する必要があるかもしれない –
仕様コードを追加しました。新しく「npmテスト」を開始しても問題はありません。 –