无法绑定到'matMenuTriggerFor',因为它不是'button'的已知属性

时间:2018-06-15 23:46:50

标签: angular angular-material karma-jasmine jestjs

当我尝试测试角度分量时,我遇到了以下错误:

运行jest测试时出错:

Can't bind to 'matMenuTriggerFor' since it isn't a known property of 'button'.

这是我的HTML:

<button mat-button [matMenuTriggerFor]="menu">Menu</button>
<mat-menu #menu="matMenu">
  <button mat-menu-item>Item 1</button>
  <button mat-menu-item>Item 2</button>
</mat-menu>`

我在package.json中使用"@angular/material": "6.1.0",。 我还在beforeAll下的TestBed块中导入了所有必需的材料依赖项 我还尝试将按钮的属性从matMenuTriggerFor更改为mat-menu-trigger-for。它不起作用。

请建议我如何修复此测试。

6 个答案:

答案 0 :(得分:30)

在功能模块或此组件所在的模块中导入 MatMenuModule

 import { MatMenuModule} from '@angular/material/menu';

imports: [
  MatMenuModule
]

答案 1 :(得分:2)

随机性,以防万一有人像我这样搜索:我正在导入一个自定义的角度材质库并在构建材质库之前先构建消费库。当我首先构建材质库时,使用库将要看到MatMenuModule,并且错误消失了。

我改变了

"library:build": "npm run ng7-common:build" && npm run ng8-material:build

收件人:

"library:build": " npm run ng8-material:build && npm run ng7-common:build"

答案 2 :(得分:1)

我认为您需要将MatMenuModule导入添加到app.module文件中。

答案 3 :(得分:0)

检查拼写,我在单词g中有一个trigger导致了我的错误

[matMenuTrigerData] => [matMenuTriggerData] 

答案 4 :(得分:0)

我得到了这个错误(以及其他一些错误),因为我未能将组件添加到declarations文件的lib.module.ts数组中。

答案 5 :(得分:0)

运行jest测试时出现此错误。我必须在MatMenuModule的导入数组中添加TestBed.configureTestingModule才能解决此错误。