如何获取单元测试的属性指令句柄?最终版本

时间:2016-10-27 09:55:04

标签: unit-testing angular

当我们想要处理Angular2中的服务时,我们会......

let fix = TestBed.createComponent(TestComponent);
let injector = fix.debugElement.injector;
let service = injector.get(MyService);

现在我们可以监视注入的服务等。

如何获取测试组件使用的属性指令的句柄,以便我可以监视它?

2 个答案:

答案 0 :(得分:2)

你需要从儿童注射器中获取它

let directive = fixture.debugElement.children[0].injector.get(MyDirective);

答案 1 :(得分:1)

对@peeskillet回答进行轻微调整,该回答仅针对与相关指令相关的元素。

    let fix = TestBed.createComponent(TestComponent);
    // this will return multiple elements if the test component uses the directive multiple times
    let directiveEls = fix.debugElement.queryAll(By.directive(MyDirective));
    let directive = directiveEls[0].injector.get(MyDirective) as MyDirective;