我有一个index.js
,需要一些参数。
// parameters
var outFile = process.argv[2] || (() => {throw "missing argument outFile";})();
var templateName = process.argv[3] || (() => {throw "missing argument templateName";})();
现在,我想用参数测试调用index.js,而不是测试函数本身,而是测试参数验证。
有一种方法可以编写这样的摩卡套件
var assert = require('assert');
describe('Wenn calling index.js', function() {
describe('with arguments arg1 arg2', function() {
it('should should fail because of "missing argument outFile"', function() {
...
});
});
});
答案 0 :(得分:1)
process
是nodejs应用程序中的全局变量,因此您应该能够在测试中设置所需的参数。您可以使用process.argv
钩子重置afterEach
。
var assert = require('assert');
describe('Wenn calling index.js', function() {
describe('with arguments arg1 arg2', function() {
afterEach(function(){
process.argv = process.argv.slice(0,2);
});
it('should should fail because of "missing argument outFile"', function() {
process.argv[3] = "param templateName";
require("path/to/index.js");
});
});
});