2014-03-13 41 views
4

好的我刚开始进入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() 

虽然这工作感觉有点讨厌,因为我不得不将代码添加到我的脚本来运行测试。

有谁知道更好的方法?

+0

[如何在使用RequireJS(和Jasmine/Sinon)时在另一个视图渲染方法中实例化存根骨干视图](http://stackoverflow.com/questions/15837017/how-to-stub-backbone-view在另一个意见,呈现方法,当你) –

+0

嗯不知道我完全同意,虽然方法是相似的,有更好的方法在requirejs伊莫。我也不确定答案能解决我的问题,这是一个模型而不是元素。 –

回答

1

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

+0

Facebook的Jest有不少[主要]问题:https://github.com/facebook/jest/issues – Hakkar

相关问题