在运行单元测试

时间:2018-02-13 08:54:37

标签: angular karma-runner karma-jasmine

我最近学会了测试角度分量。我在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吗?任何帮助是极大的赞赏。

1 个答案:

答案 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);