由于Jasmine中的html中的自定义元素导致的角度2组件测试错误

时间:2018-02-16 16:36:57

标签: angular testing jasmine

我正在尝试使用Jasmine测试Angular中的组件。测试很简单,只需要验证组件是否已创建。

it('AppComponent should be created', () => { expect(component).toBeTruthy(); });

如果使用angular cli,它是在spec文件中自动创建的默认规范。我的问题是组件的html文件有一些不是常规标签的元素,这是自定义的。

<app-header></app-header> 

问题是如何让Jasmine了解它们,它们来自何处,或者如何添加链接等,以便像

这样的错误

失败:模板解析错误:'app-header'不是已知元素:1。如果'app-header'是Angular组件,请验证它是否是此模块的一部分。

不会显示在Karma调试页面中。如何验证?

2 个答案:

答案 0 :(得分:1)

如果添加 NO_ERRORS_SCHEMA 可能会起作用:

 import { NO_ERRORS_SCHEMA } from '@angular/core';

将忽略那些组件错误

答案 1 :(得分:0)

您没有正确设置TestBed.configureTestingModule({}块。它的结构类似于角度模块。您需要在此处导入和注入模块/组件/服务等。或嘲笑他们。 请阅读相关教程(https://angular.io/guide/testing#test-a-component)。由于这是非常基本的,因此无法在一个答案中解释。