将模拟注入Browserify进行测试

nic*_*las 10 unit-testing browserify

我知道,Browserify并不是一个真正的DI框架,但是可以在单元测试期间"注入"或以某种方式伪造注入模拟数据到应用程序中吗?

例如,要测试功能:

var MyModel = require('./models/My.js');

function doSomething() {
  // do something with model.
}
Run Code Online (Sandbox Code Playgroud)

与模拟My.js一样

describe('Do Something', function() {

  beforeEach(function() {
    // replace './models/My.js' with a Mock implementation.
  });

  it('with model', function() {
    // ... test
  });
})
Run Code Online (Sandbox Code Playgroud)

什么beforeEach功能?

dan*_*itz 7

require在browserify 中有一些用于模拟调用的工具.

我没有亲自使用过这些.此外,嘲弄不是用Browserify编写的,因此嘲弄可能甚至不起作用.其他的是为Browserify编写的,所以他们应该付出很少的努力.:)尽管如此,Proxyquireify和Rewireify似乎是去年唯一的2个活跃.