关闭渲染组件进入 DOM 而 运行 单元测试

Turn off rendering component into DOM while running unit test

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

我认为您 应该 在测试您的组件时渲染您的 DOM;这就是为什么如何 呈现 DOM 并不明显。在 AngularJS 上,我喜欢新版本 Angular 的一件事是渲染 DOM.

是多么容易

但是,如果您出于某些疯狂的原因不想在测试中呈现 DOM,那么您基本上只需减少使用框架即可。我会做的是 "new" 手动组件:

// 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);