从inbside对象运行Jasmine测试

时间:2017-03-16 13:00:55

标签: javascript cordova unit-testing jasmine

我刚刚参加了一个中型Cordova项目,并希望在代码实践中添加单元测试 - 例如但不一定是Jasmine。

我们正在使用以下“单身功能”模式来模拟EC5中的类javascript:

var myInstance = function( dependency1, dependency2 ){

    var _prop1,_prop2;

    function init( p1, p2 ) {
        _prop1 = p1;
        _prop2 = p2;
    }

    function foo() {
        return p1 + " foo " + p2;
    }

    function nicePublicMethod() {
        return "Public: " + foo();
    }

    return {
       init: init,
       nicePublicMethod: nicePublicMethod
    }

}

依赖关系全部按以下方式逐个加载到index.html文件中:

<script src="js/app/dependency1.js"></script>
<script src="js/app/dependency2.js"></script>
<script src="js/app/myInstance.js"></script>

我想要实现的目标:

将“公共测试”Jasmine函数添加到myInstance“singleton”中:

var myInstance = function( dependency1, dependency2 ){

        var _prop1,_prop2;

        function init( p1, p2 ) {
            _prop1 = p1;
            _prop2 = p2;
        }

        function foo() {
            return p1 + " foo " + p2;
        }

        function nicePublicMethod() {
            return "Public: " + foo();
        }
    /** TEST METHOD EXAMPLE **
        function test() {
            describe( "it tests myInstance", function() {
                it( "foo runs fine", function() {
                    expect(true).toBe(true);
                });
            } );
        }

        return {
           init: init,
           nicePublicMethod: nicePublicMethod,
           test: test // PUBLIC TEST METHOD OF THE COMPONENT
        }

    }

这是我提出的唯一方法,以确保我们可以对私有方法进行单元测试。

是否有可能以某种方式将Jasmine或任何其他JavaScript测试库/工具与这些测试架构集成?

PS:我知道这确实是一个普遍的(也是太具体的)问题,但来自这个社区的知识渊博的人的评论值得收到几个-1。

0 个答案:

没有答案