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

标签 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)框架测试这行代码?

最佳答案

您需要以可测试的方式拼接代码。编写可测试的代码,或者实际上编写一般测试本身就是一种技能。在这种情况下,您需要稍微重组您的代码。根据我在那里看到的,我会想出这个:

_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');
})

关于javascript - 如何使用 jasmine.js 测试 js 函数的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23947131/

相关文章:

javascript - 等价于 .show() - 纯 JavaScript 中的 jQuery

javascript - 如何在每次点击时添加 1 个选择字段

backbone.js - 在 CommonJS 项目(特别是 Browserify)中处理全局应用程序状态(不是变量本身)

Javascript 正则表达式不返回预期值

javascript - 使用 Regex[JS] 在双引号内转义双引号

php - 如何在javascript中获取数组的值

jquery - 禁用 Jquery 日期选择器中的假期列表

javascript - 如何在 Bootstrap 中创建切换按钮

javascript - Backbone.js:区分仍在加载的集合和空集合?

javascript - 需要 js 使用 marionette 创建