如何使用jasmine.js测试js函数的一部分?

时间:2014-05-30 04:37:59

标签: javascript jquery backbone.js jasmine

我有一个主干的view.js功能为:

functionName : function(e){
     var a = $(e.currentTarget).val().replace(/\ /g, '+');

    // Remaining code (function behavior) here...

}

我需要检查来自jasmine框架的var a = $(e.currentTarget).val().replace(/\ /g, '+');代码行以获取代码覆盖率。

请帮帮我,如何使用jasmine.js(版本1.3.1)框架测试这行代码?。

1 个答案:

答案 0 :(得分:1)

您需要以可测试的方式拼接代码。制作一个可测试的代码,或者实际上编写测试的代码本身就是一项技能。在这种情况下,您需要重新调整代码。用我在那里看到的,我会想出这个:

_padPlus: function( value ) {
    return value.replace(/\ /g, '+');
},

functionName: function(e) {
    var a = this._padPlus( $(e.currentTarget).val() );

    // Remaining code (function behavior) here...
}

从这里开始,我会自己测试_padPlus

it('should replace spaces with plus signs', function(){
    // arrange
    var view = new View();
    var string = 'this is a sentence with spaces';

    // act
    var result = view._padPlus( string );

    // assert
    expect(result).toBe('this+is+a+sentence+with+spaces');
})