为了切入追逐,我想知道是否有办法将DOM元素添加到测试DOM中。我刚接触测试,但有点像fixture.degugElement.prepend('div')
。从我对测试的了解可能会发现一个设计缺陷,所以如果你想要一些理由,我已经在下面添加了原因。
为什么我需要这样做:
在我的应用程序中,我有一个类似于this之前版本的文本自动收录器指令。为了功能我必须测量文本的长度。为了达到这个目的,我创建了一个ghost元素,并将其粘贴在AppComponent
中@Component({
selector: 'app-root',
template: `
<div id="ghost"></div> <!-- THIS IS THE GUY I NEED -->
<div class="main-area">
<router-outlet></router-outlet>
</div>
`,
styleUrls: ['./app.component.scss']
})
不幸的是,由于正确测量它所需的css定位,我需要这个元素,但这意味着它在我的测试中不可用。
答案 0 :(得分:1)
看起来像这样:
const newTemplate = `<div id="ghost"></div>${oldTemplate}`
...
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ComponentUnderTest],
// ... more module stuff
}).overrideTemplate(ComponentUnderTest, newTemplate )
.compilecomponents();
}));