使用来自Mocha测试套件的参数调用index.js

时间:2018-08-14 10:09:41

标签: javascript node.js mocha

我有一个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() {
       ...
    });
  });
});

1 个答案:

答案 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");
    });
  });
});