首页 > 解决方案 > 无法绑定到“consoleMessages”,因为它不是“app-console”的已知属性

问题描述

单元测试角度应用程序时收到以下错误消息

无法绑定到“consoleMessages”,因为它不是“app-console”的已知属性。

  1. 如果“app-console”是一个 Angular 组件并且它有“consoleMessages”输入,那么验证它是这个模块的一部分。
  2. 如果“app-console”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。
  3. 要允许任何属性,请将“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
      })

标签: angularunit-testingjasmine

解决方案


您收到错误的原因是因为您正在引用自定义元素的consoleMessages属性。app-console并且角度编译器找不到该属性。

CUSTOM_ELEMENTS_SCHEMA定义了一个模式,其中包含非角度的自定义元素。因此,通过添加该模式,您是在告诉 Angular 忽略对该元素的类型检查。这可能不是你想要的。

我的猜测是正在发生的几件事之一:

  1. consoleMessages属性未定义为AppConsole类的公共属性。
  2. 您尚未AppConsole在测试工具中正确配置。您是测试工具中的模块吗?

推荐阅读