无法绑定到 'matRowDefColumns',因为它不是 'mat-row' 的已知 属性

Can't bind to 'matRowDefColumns' since it isn't a known property of 'mat-row'

我正在测试一个使用 mat-table 的 Angular 7 组件,我定义了一个模拟模块,它声明并导出一个模拟 mat-row 组件:

@Component({selector: 'mat-row', template: ''}) export class StubMatRowComponent {
  @Input() public matRowDefColumns: string[];
}

模板中的用法是这样的:

<mat-row *matRowDef="let foo; columns: displayedColumns;"></mat-row>

使用这种语法,我得到的错误是 "Can't bind to 'matRowDefColumns' since it isn't a known property of 'mat-row'."

如果我不需要foo,我可以这样写,这样就可以了:

<mat-row matRowDef="displayedColumns"></mat-row>

有谁知道如何使用模板语法让模拟工作?

附带说明一下,显然,除了导入我的模拟模块之外,我还可以导入真实的模块,但同样明显的是,出于测试目的,我更喜欢模拟而不是完全集成。

答案是因为matRowDef是一个结构指令,而不是属性要绑定的,所以必须创建并导入模拟结构指令:

@Directive({
  selector: '[matRowDef]'
}) export class StubMatRowDefDirective {
  @Input() matRowDefColumns: string[];
}