如何使用Mocha对CodeEval的JS代码进行单元测试?

时间:2014-06-15 19:51:31

标签: javascript unit-testing mocha

我想使用Mocha框架对我的JavaScript解决方案进行单元测试,以便在CodeEval站点上进行挑战。

我可以创建单独的文件或使用其他一些奇特的方法,但是:

  • 我希望我的解决方案能够在单元测试通过后立即上传,而不会更改任何文件(我可能忘了这么做)。
  • 附加代码不应引入不必要的时间或内存使用情况。

但CodeEval要求和Mocha似乎不兼容,不是吗?

默认CodeEval存根:

var fs  = require("fs");
fs.readFileSync(process.argv[2]).toString().split('\n').forEach(function (line) {
if (line != "") {
    //do something here
    console.log(answer_line);
}

1 个答案:

答案 0 :(得分:0)

检查程序的参数数量非常简单。使用CodeEval它将是3,mocha将是2.摩卡执行总是落入"否则"并导出逻辑功能。

经过测试的解决方案。

var fs  = require("fs");

module.exports = processLine;

if (process.argv.length === 3) {
    // codeeval mode
    fs.readFileSync(process.argv[2]).toString().split('\n').forEach(function (line) {
        if (line != "") {
            console.log(processLine(line));
        }
    });
}

function processLine(line) {
    return line;
}

说明:

  • 如果使用参数或mocha.opts文件运行mocha,它将无法工作,除非有超过3个参数;
  • 在文件中设置module.exports并不会打扰CodeEval。