6

我已经使用 nodeunit 编写了一堆测试来测试我的代码。在这样做时,我想模拟被测代码所需的模块。当不需要时,我没有更改代码以使其更易于使用模拟、控制反转进行测试,而是使用 nodeunits 沙箱功能。

例子

var nodeunit = require("nodeunit");
export.MyTest = {
  test1(test) {
    var fakeGlobals = {
      require: function(filename) {
        if (filename == "CoolUtil.js") {
          return { doit: function wasCool() { return true; } };
        } else {
          return require(filename);
        }
      }
    };
    var testSubject = nodeunit.utils.sandbox("ModuleUnderTest.js", fakeGlobals);
    test.equals(42, testSubject.doSomethingCoolUsingCoolUtil(), "Worked");
    test.done();
  }
}

伊斯坦布尔给了我错误的报道报告编号。我尝试使用标志--post-require-hook,据说它与RequireJS一起使用,我可以切换到但还没有学会。

test/node_modules/.bin/istanbul 覆盖 --v --hook-run-in-context --root test/node_modules/.bin/nodeunit -- --reporter junit --output target/results/unit_tests test

有没有人成功使用 nodeunit、istanbul 和使用 nodeunit 中的沙盒功能?

4

0 回答 0