如何在角度2中测试私有函数?
@H_404_1@class FooBar {
private _status: number;
constructor( private foo : Bar ) {
this.initFooBar();
}
private initFooBar(){
this.foo.bar( "data" );
this._status = this.fooo.foo();
}
public get status(){
return this._status;
}
}
我发现的解决方案
>将测试代码本身放在闭包中或在闭包内添加代码,该代码存储对外部作用域中现有对象的局部变量的引用.
稍后使用工具去除测试代码.
http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/
P.S
>像这样的类似问题的大多数答案都不能解决问题,这就是我问这个问题的原因
>大多数开发人员都说你不测试私人功能,但我不是说他们错了或是对的,但我的案例有必要对私人进行测试.
我和你在一起,尽管“只对单一测试公共API进行测试”是一个很好的目标,但有时它看起来并不那么简单,你觉得你在选择破坏API或单元测试之间做出选择.你已经知道了,因为这正是你要求做的,所以我不会深入研究它.