我在单元测试角度应用程序时收到以下错误消息
无法绑定到"控制台消息",因为它不是"应用程序控制台"的已知属性。
- 如果"app-console"是一个 Angular 组件,并且它有"consoleMessages"输入,那么请验证它是否是此模块的一部分。
- 如果"应用程序控制台"是 Web 组件,则将"CUSTOM_ELEMENTS_SCHEMA"添加到此组件的"@NgModule.schemas"以禁止显示此消息。
- 要允许任何属性,请将"NO_ERRORS_SCHEMA"添加到此组件的"@NgModule.schemas"中。(">
<br>
<app-console [ERROR ->][consoleMessages]="consoleMessages"></app-console>
</div>"): ng:///DynamicTestModule/EntitlementCreateComponent.html@135:15
'app-console' is not a known element:
TestBed.configureTestingModule({
imports:[HttpClientTestingModule,RouterTestingModule,FormsModule,ReactiveFormsModule],
declarations: [EntitlementCreateComponent,NGXSpinner],
//schemas: [ NO_ERRORS_SCHEMA] //Note schemas is commenented
})
收到错误的原因是引用了app-console
自定义元素的 consoleMessages
属性。并且角度编译器找不到该属性。
CUSTOM_ELEMENTS_SCHEMA
定义一个架构,其中包含非角度的自定义元素。因此,通过添加该架构,您告诉 angular 忽略对该元素的类型检查。这可能不是你想要的。
我的猜测是正在发生以下几件事之一:
-
consoleMessages
属性未定义为AppConsole
类上的公共属性。 - 未在测试工具中正确配置
AppConsole
。您是否在测试工具中设置模块?