私は、テスト用のコンポーネントを作成しようとしています。このコンポーネントには、テストしたい外部CSSがあります。私はすべてを正しくやっていると思いますが、テストに合格することができませんでした。ここでは私のコードです: app.component.spec.ts外部CSSをAngular 2に読み込んでテストする
import { AppComponent } from "./app.component";
import { async, TestBed } from "@angular/core/testing";
import { By } from "@angular/platform-browser";
describe("App Component", function() {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [AppComponent],
}).compileComponents()
}));
it("should instantiate component",() => {
let fixture = TestBed.createComponent(AppComponent);
expect(fixture.componentInstance instanceof AppComponent).toBe(true);
});
it("should have expected <h1> text",() => {
let fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
let h1 = fixture.debugElement.query(By.css("h1"));
expect(h1.nativeElement.innerText).toBe("hello world!");
expect(h1.nativeElement.style.color).toBe("blue");
});
});
app.component.ts:
import { Component } from "@angular/core";
@Component({
moduleId: module.id,
selector: "nebula-app",
styleUrls: ["./app.component.css"],
templateUrl: "./app.component.html",
})
export class AppComponent { }
app.component.html:
<h1>hello world!</h1>
app.component。 CSS:
h1{
color: blue;
}
期待は失敗するでしょう。 h1.nativeElement.style.colorが空であるとみなします。何とかCSSをロードしなかったようです。私がhtmlのラインスタイルのようにスタイルを置くと、このテストは合格になります。しかし、それを外部のCSSとして持つことは、期待を裏切ります。
私は間違っていますか? compileComponentsが外部CSSをロードしてnativeElementのスタイルとして配置するという私の仮定は間違っていますか?
色と背景色は、例の@jonrsharpe私の悪い – jonrsharpe
は異なっています。私はそれを編集しますが、まだ動作しません – user3521794
*「動作しません」*より具体的になりますか? – jonrsharpe