如何在角度2中测试私有函数?
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或单元测试之间做出选择.你已经知道了,因为这正是你要求做的,所以我不会深入研究它.