如何访问Angular组件中的属性指令以获取规范?

时间:2018-06-13 20:55:53

标签: angular jasmine

我正在编写一个使用ngx-bootstrap工具提示属性指令(TooltipDirective)的组件的规范。我想调用工具提示的open方法来查看内容。但是当我尝试访问该指令时,我得到了我的组件。

const tooltip = fixture.debugElement.query(By.directive(TooltipDirective))
                       .componentInstance;

当我console.log(tooltip)时,我得到了对被测组件的引用,而不是预期的tooltip指令。有没有办法访问属性指令?

1 个答案:

答案 0 :(得分:2)

为了获得测试组件的属性指令,您必须使用构建它的injector上的DebugElement。以下是如何做到这一点:

const tooltip = debugElement.query(By.directive(TooltipDirective))
                            .injector.get(TooltipDirective);

您无法使用TestBed.get访问此指令,因为它仅适用于子注入器。