我正在为一个Angular应用编写karma/jasmine单元测试。其思想是验证HTML模板是否有效。
假设有一个简单的组件"my-comp“。假设我使用下面的HTML模板,它调用了一个不存在的属性:
<my-comp [noop]="dummy"></my-comp>
在应用程序执行期间,我会得到一个模板解析错误:
Can't bind to 'noop' since it isn't a known property of 'my-comp'.
现在,我想在测试过程中检查一下。然而,单元测试通过了,组件被初始化了。
有没有办法在测试中检测到这种错误?
发布于 2018-11-21 00:58:25
这对于角度组件和测试来说是正常的。
在本例中,如果不为组件提供@Input()noop
,[noop]=dummy
将无法工作。不存在这样的属性,因此编译将失败。
但是,在测试过程中,当您这样做时
line1 const fixture = TestBed.createComponent(MyComponent);
line2 const component = fixture.componentInstance;
这将根据您在component.ts中的定义生成一个组件,因此,您看不到任何故障。
如果您在VS项目上设置了linter,您将注意到,如果您在line2之后添加:component.noop
,那么测试文件中将会出现错误,因为您的组件上不存在此属性。
https://stackoverflow.com/questions/53396036
复制相似问题