2014-06-15 96 views
0

我想单元测试我的JavaScript解决方案,使用Mocha框架在CodeEval站点上面临挑战。如何使用Mocha为CodeEval单元测试JS代码?

我可以创建单独的文件,或者使用其他一些花哨的办法,但:

  • 我想我的解决办法是准备上传刚过单元测试通过,没有任何文件的更改(即我可以忘了做)。
  • 其他代码不应引入不必要的时间或内存使用量。

但CodeEval的要求和摩卡似乎不兼容,或不是?

默认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); 
} 

回答

0

这是很简单的检查方案的参数数目。使用CodeEval时,它将是3,而摩卡将是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文件运行,除非有更多然后3个参数它不会工作;
  • 设置module.exports里面的文件不会影响CodeEval。
相关问题