在Browserify中对单元测试进行存根所需的模块

时间:2014-03-13 09:31:53

标签: unit-testing jasmine sinon browserify

好的,我刚开始进入Browserify并且在编写我的茉莉花测试时遇到了一些问题。基本上我有一个骨干视图,其中有嵌套视图,现在出于测试目的,我显然不想在这里测试嵌套视图,因为它正在使用它自己的单元测试进行测试。我想要做的就是将其删除,检查是否正在使用正确的

进行调用

所以我有以下

nestedView  = require('./nested_view.coffee')

module.exports = class MainView extends Backbone.View
   initialize:(collection, attr)->
     NestedView = if _.isUndefined(attr.Stub) then NestedView else attr.Stub
     @nested_view = new NestedView()

然后在我的测试中:

it "Tests my nested view", ->
  Stub =  sinon.stub()
  @mainview  = new MainView(collection:@collection, {SV:Stub})
  expect(Stub).toHaveBeenCalledOnce()

虽然这确实有效但感觉有点讨厌,因为我不得不在我的脚本中添加代码来运行测试。

有没有人知道更好的方法?

1 个答案:

答案 0 :(得分:1)

您应该查看rewireify或proxyquireify。它们将允许您操纵" nestedView = require(' ./ nested_view.coffee')"你的考试中的陈述。但是,是的,您必须为要模拟的每个require语句执行此操作。您也可以查看Facebook的Jest,自动嘲笑您的所有需求声明。