使用Jasmine和Browserify进行单元测试并删除require()s

时间:2014-08-26 18:41:43

标签: javascript unit-testing mocking browserify

对于以下代码,我想测试someMethod中的if / else,但我无法访问该需要的组件。使用Browserify测试这些东西有什么技巧吗?我可以在原型上设置baz: Foo.bar(),但是我必须为我需要覆盖的每个需要的组件执行此操作。

var Foo = require('../foo/index.js');

var someClass = new SomeClass({
  someMethod: function () {
    var baz = Foo.bar();
    if (baz == 'hello') {
      return 1
    }
    else {
      return 0
    }
  }
});

1 个答案:

答案 0 :(得分:0)

您应该查看rewireify或proxyquireify。它们将允许您在测试中操作“var Foo = require”语句。但是,是的,您必须为要模拟的每个require语句执行此操作。您也可以查看Facebook的Jest,自动嘲笑您的所有需求声明。