मेरे पास stdlib
प्रारंभकर्ता है। उस प्रारंभकर्ता में, मैंने कुछ अंतर्निहित एम्बर कक्षाओं को फिर से खोल दिया और कुछ कस्टम तरीकों को जोड़ा। उदाहरण के लिए, मैंने reverseEach
से Ember.Enumerable
और Array
जोड़ा।एक यूनिट परीक्षण में प्रारंभकर्ता का उपयोग करना?
वे ऐप में ठीक काम करते हैं, लेकिन परीक्षणों में मुझे "रिवर्सएच: अपरिभाषित कोई फ़ंक्शन नहीं है"।
मैं कैसे संकेत दूं कि परीक्षण प्रारंभकर्ता का उपयोग करना चाहिए?
मैंने needs: [..., 'initializer:stdlib']
की कोशिश की। यह उस पर ठोकर नहीं है, लेकिन मुझे अभी भी "अपरिभाषित" त्रुटि प्राप्त होती है।
`import { test, moduleForModel } from 'ember-qunit'`
moduleForModel 'foo', 'foo',
needs: [
'model:bar'
'initializer:stdlib'
]
test 'deleteLastNItems', ->
model = @subject()
model.set '', ['foo', 'bar', 'baz', 'quux']
model.deleteLastNItems 2 # This should not die with "reverseEach: undefined is not a function"
deepEquals model.get('someProperty'), ['foo', 'bar']
सवाल यह है कि प्रारंभकर्ता ही परीक्षण करने के लिए है, लेकिन कैसे एक और इकाई (।। ई जी मॉडल) प्रारंभकर्ता से तरीकों बंदर समझौता का उपयोग करता है परीक्षण करने के लिए नहीं है। –
एन, आप एम्बर.मिक्सीन को बंदर-पैच किए गए विधि को निकाल सकते हैं, फिर प्रारंभकर्ता के बजाय मिक्सिन आयात कर सकते हैं। – zhenhua
मैं बंदर-पैचिंग एम्बर स्वयं हूं, मॉडल नहीं। उदाहरण के लिए, मैं 'Ember.MutableArray'' पर एक नई विधि जोड़ता हूं: एक '.destructiveMap()' विधि जो एक नई सरणी लौटने के बजाय दिए गए सरणी को संशोधित करती है। –