【发布时间】:2017-09-15 19:41:28
【问题描述】:
一切尽在标题中:如何测试组件的构造函数中所做的事情?
为了您的信息,我正在使用一个需要设置的服务,我想看看我在构造函数中调用的 2 个方法是否被正确调用。
我的组件的构造函数:
constructor(
public router: Router,
private profilService: ProfileService,
private dragula: DragulaService,
private alerter: AlertService
) {
dragula.drag.subscribe((value) => {
this.onDrag(value);
});
dragula.dragend.subscribe((value) => {
this.onDragend(value);
});
}
【问题讨论】:
-
使用测试台注入假的
DragulaService并窥探其方法? -
我想,问题是我无法联系到contrsuchor来测试我的存根是否被调用
-
什么意思“到达构造函数”?当组件被测试台中的 DI 系统实例化时,当您
TestBed.createComponent(YourComponent)时,它会被调用。 -
我的意思是,我想测试构造函数中编写的代码是否被触发,通过测试构造函数,就像它是任何其他方法一样
-
您可以通过手动创建
new YourComponent(...)来调用构造函数,但您应该让 DI 系统完成其工作。这就是该单元在实践中的使用方式,想想它的公共接口,就像其他组件看到的那样。如下所示,听起来您正在编写(或尝试编写)与当前实现密切相关的脆弱测试。
标签: unit-testing angular angular2-testing