在Angular Material对话框的单元测试中,包含MAT_DIALOG_DATA
可以通过以下方式解决:
首先,需要导入MAT_DIALOG_DATA
:
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
然后,在创建对话框时,将MAT_DIALOG_DATA
作为提供者提供给对话框:
const dialogRef = dialog.open(MyDialogComponent, {
data: { myData: 'test data' },
providers: [
{ provide: MAT_DIALOG_DATA, useValue: {} }
]
});
接下来,在测试用例中,可以通过inject
方法来注入MAT_DIALOG_DATA
:
import { inject } from '@angular/core/testing';
...
it('should pass data to dialog', inject([MAT_DIALOG_DATA], (data) => {
expect(data).toEqual({ myData: 'test data' });
}));
这样就可以在单元测试中访问到MAT_DIALOG_DATA
了,并且可以进行相关的断言和验证。