Backbone jasmine sinon.stub typeError

sme*_*mek 7 coffeescript backbone.js jasmine sprockets sinon

我正在尝试编写一个Backbone Todos集合的简单规范,该集合存储了Backbone Todo模型.

这是我的规格:

describe "TodoApp.Collections.Todos", ->

  beforeEach ->
    @todoStub = sinon.stub window, 'TodoApp.Models.Todo'

  afterEach ->
    @todoStub.restore()
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

TypeError: Attempted to wrap undefined property TodoApp.Models.Todo as function
Run Code Online (Sandbox Code Playgroud)

Todo模型定义为todo = new TodoApp.Models.Todo()不会给出错误.

这是一个范围问题吗?有人能指出我正确的方向吗?

pab*_*era 8

我也遇到了这个问题.你应该这样称呼它......

    beforeEach ->
            @todoStub = sinon.stub window.TodoApp.Models, 'Todo'
Run Code Online (Sandbox Code Playgroud)

而不是这个.

    beforeEach ->
            @todoStub = sinon.stub window, 'TodoApp.Models.Todo'
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题

@smek:这也解决了你的问题来自http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html