如何使用Jasmine为私有方法编写Angular 2 / TypeScript的单元测试

前端之家收集整理的这篇文章主要介绍了如何使用Jasmine为私有方法编写Angular 2 / TypeScript的单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在角度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或单元测试之间做出选择.你已经知道了,因为这正是你要求做的,所以我不会深入研究它.

猜你在找的Angularjs相关文章