我最近学会了测试角度分量。我在chrome
中使用了karma-jasmine-launcher,使用了以下代码let fixture = TestBed.createComponent(AboutComponent);
let cut = fixture.componentInstance;
let element: Document = fixture.nativeElement;
// Run the changes
fixture.detectChanges();
let emailEle = element.querySelector('.email');
expect(emailEle.innerHTML).toEqual('email_test');
上面的测试按预期工作,但我看到AboutComponent在运行测试时将HTML渲染到DOM?这是它的工作方式吗?对于运行单元测试,我想关闭DOM渲染?我们可以关闭渲染元素到DOM吗?任何帮助是极大的赞赏。
答案 0 :(得分:0)
我认为你应该在测试你的组件时渲染你的DOM;这就是为什么不渲染DOM并不明显的原因。我喜欢Angular的新版本,而不是AngularJS,就是渲染DOM是多么容易。
但是如果你不想在测试中渲染DOM有一些疯狂的原因,你基本上只是使用框架。我要做的是手动“新”组件:
// first get your component dependencies
const myService = TestBed.get(MyService);
const someOtherDep = TestBed.get(SomeOtherDependency);
// next instantiate your component
const component = new AboutComponent(myService, someOtherDep);