angular - 如何在测试期间获取动态角度分量的实例?
问题描述
这是我的代码:
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentClass);
const dialogElement = document.createElement('some-dialog');
const componentRef = componentFactory.create(
this.injector,
[],
dialogElement
);
document.body.appendChild(dialogElement);
此代码发生在服务内部。现在,我想从测试文件中获取组件的实例(componentRef)。考虑到我在测试中只有 DOM 元素,如何做到这一点?
解决方案
好的。我找到了解决方法。因为我是决定我的componentClass
外观的人(作为函数的参数),所以我只需要确保componentClass
在测试本身中公开我想要的内容:
let componentInstance: DialogContentComponent;
@Component({
template: `<h1 id="dialog-content">Hello</h1>`,
})
class DialogContentComponent {
constructor() {
componentInstance = this;
}
}
然后 componentInstance 将是服务内部生成的。
需要注意的一点 - 不要忘记在beforeEach
语句中重置 componentInstance 以确保它不会从其他测试中携带。
推荐阅读
- azureservicebus - 为多个服务总线实体生成 SAS 令牌
- javascript - 如何从 API 响应中获取数据
- tcp - 如果我打开 TCP 连接但不发送数据,空闲超时似乎要长得多,为什么?
- c# - 检测字符串是否适合字符串序列的最快方法
- javascript - 这意味着我们不能在现有属性之间插入新属性
- python - 如何在 python 的回归模型中使用“滚动期回报”来预测未来的回报?
- javascript - 错误:无法验证 Nestjs 中的第一个证书
- javascript - Javascript:表单验证导致选定的 Ajax 实时搜索字段重置为 Null?
- google-sheets - 如何使用 Arrayformula 计算具有双重条件的平均值
- python - 如何标记多个值之间的差异?