2012-02-22 12 views
7

मैं बैकबोन टोडोस संग्रह के लिए एक साधारण कल्पना लिखने की कोशिश कर रहा हूं जो बैकबोन टोडो मॉडल को दबाता है।बैकबोन जैस्मीन sinon.stub typeError

describe "TodoApp.Collections.Todos", -> 

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

    afterEach -> 
    @todoStub.restore() 

यह मैं निम्न त्रुटि देता है::

यहाँ मेरी कल्पना है

TypeError: Attempted to wrap undefined property TodoApp.Models.Todo as function 

तोदो मॉडल हालांकि कार्य करने के रूप में परिभाषित किया गया है = नए TodoApp.Models.Todo() doens't दे एक त्रुटि।

क्या यह एक स्कोपिंग मुद्दा है? क्या कोई मुझे सही दिशा में इंगित कर सकता है?

उत्तर

8

मैं बस उस समस्या में भी भाग गया। आपको इसे इस तरह से कॉल करना चाहिए ...

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

इसके बजाय।

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

के लिए मुझे

@smek समस्या हल: यह भी http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html

+0

इससे भी मेरे लिए समस्या हल हो गई, धन्यवाद! – smek

+0

मेरे लिए पूरी तरह से काम किया, चीयर्स। –

1

sinon.stub window, 'TodoApp.Models.Todo' का उपयोग कर रहे वाक्यविन्यास window['TodoApp.Models.Todo'] को फ़ंक्शन के रूप में लपेटने के लिए होगा। http://sinonjs.org/docs/#stubs

साइनऑन के साथ आप अपने टोडो मॉडल पर एक विशेष समारोह को एक स्टब के साथ लपेटने की अधिक संभावना रखते हैं: sinon.stub TodoApp.Models.Todo, 'Foo'

साइनन stub an entire object कर सकता है लेकिन मुझे लगता है कि यह अधिक बारीक होने के लिए डिज़ाइन किया गया है।

+0

हाय एरिक से, आपके उत्तर के लिए धन्यवाद आपकी समस्या नहीं सुलझती। मैं टोडो मॉडल को स्टब करने की कोशिश कर रहा हूं ताकि मैं अलगाव में टोडोस संग्रह का परीक्षण कर सकूं। मैं http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html पर उदाहरण का अनुसरण कर रहा हूं कहां कहता है कि आप इस तरह के मॉडल कन्स्ट्रक्टर फ़ंक्शन को रोक सकते हैं। – smek

+0

@smek आप अपने '' 'Todo''' को' '' window''' मॉडल, इस के समान अटैच किया है: http://stackoverflow.com/questions/4214731/coffeescript-global-variables? –

+0

@Erick मैं के साथ अपने मॉडल में परिभाषित किया गया है: वर्ग window.TodoApp.Models.Todo फैली Backbone.Model – smek

संबंधित मुद्दे