![](/img/trans.png)
[英]How to unit test and mock parentElement of ElementRef - Angular 9
[英]Jasmine how mock parentElement
您好,我在测试中遇到此错误,我真的不知道如何修复它,我正在使用 Jasmine 和 Angular。
在指令中,我必须读取 elment 的 parentNode,但测试失败。 知道如何模拟它吗?
这是代码
private getParentElement() {
return this.element.nativeElement.closest('th');
}
private setActiveSortingCellOnLoad(): void {
const selectors = "[name='arrows-sort-down'] , [name='arrows-sort-up']";
const headerCells = this.getParentElement().parentElement.childNodes;
headerCells.forEach(cell => {
if (cell.childNodes.length > 0) {
const el = cell.querySelectorAll(selectors);
if (el.length === 1) {
cell.classList.add(this.activeSortClass);
}
}
});
}
由于getParentElement
是私有的,我们将不得不以一种骇人听闻的方式监视它。
尝试以下操作:
it('does abc', () => {
spyOn((component as any), 'getParentElement').and.returnValue({ parentElement: { childNodes: [/* mock childNodes here */ ]}});
});
hacky 部分是component as any
因为您不能监视私有方法。 我认为上述应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.