javascript - 自动测试 JavaScript 函数的输出

标签 javascript

我经常手动测试 JavaScript 函数的输出(通过简单地查看控制台中每个函数的输出),这通常非常乏味。在 JavaScript 中,有没有办法自动测试一系列函数调用的输出,并返回所有未产生预期结果的测试?

checkOutput([["add(1, 2)", 3], ["add(2, 2)", 4]]); //if the input does not match the output in one of these arrays, then return the function call(s) that didn't produce the correct output

function checkOutput(functionArray){
    //this function is not yet implemented, and should return a list of function calls that did not produce correct output (if there are any).
}

function add(num1, num2){
    return num1 + num2;
}

最佳答案

看起来就像循环一样简单,eval 每个数组的第一个元素并将其与第二个元素进行比较。

function checkOutput(functionArray) {
    var check = function(e) {
        return eval(e[0]) !== e[1];
    };
    if( Array.prototype.filter)
        return functionArray.filter(check);
    // shim in older browsers
    var l = functionArray.length, i, out = [];
    for( i=0; i<l; i++)
        if( check(functionArray[i]))
            out.push(functionArray[i]);
    return out;
}

关于javascript - 自动测试 JavaScript 函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352637/

相关文章:

javascript - 在 Javascript 中查找模式

javascript - 用换行符分割多个 JS 字符串

javascript - 尝试在 native react 中创建两列

javascript - 完成可写流

drag-and-drop - 使用 JavaScript 进行拖放

javascript - Android webview javascript 错误

javascript - 如何使用 JavaScript 清除浏览历史记录?

javascript - 使用 jQuery TinyMCE 加载外部 TinyMCE 插件

javascript - 针对爬虫和机器人的 HTML 5 存储

javascript - 简单的 Jquery 变量问题