获取在测试中通过 MatDialog 打开的组件的 Angular 组件实例

Get Angular component instance of component that was opened via MatDialog in tests

提问人:Andreas T 提问时间:8/13/2023 更新时间:8/13/2023 访问量:15

问:

在使用 Jest 作为测试运行程序的 Angular 项目中,我正在为组件 Parent 编写组件测试。父级在内部使用注入的 ;该对话框显示组件 ChildMatDialog

组件测试应包含以下行为:

  1. 创建 Parent 的实例。
  2. 执行导致父级打开对话框的触发器。
  3. 验证是否已使用正确的参数创建了 Child 实例。

我知道的唯一解决方案是用间谍进行模拟并验证对该方法的调用。但是,我更希望我能找到在 DOM 中创建的 Child 实例并对该对象执行验证。有没有办法做到这一点?MatDialog.open

值得注意的是,使用 (with being of type ) 不起作用,可能是因为 Child 不是在 Parent 的子树中创建的。fixture.debugElement.queryfixtureComponentFixture<Parent>

Angular TypeScript 测试 Dom jestjs

评论


答: 暂无答案