2015-01-27 6 views
5

मेरे पास 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'] 

उत्तर

-1

आप ember g initializer stdlib उपयोग करें, यह परीक्षण भी शामिल है, आप के लिए नमूना कोड उत्पन्न होगा कर सकते हैं:

यहाँ एक उदाहरण परीक्षण है।

import Ember from 'ember'; 
import { initialize } from '../../../initializers/stdlib'; 
import { module, test } from 'qunit'; 

var registry, application; 

module('Unit | Initializer | stdlib', { 
    beforeEach: function() { 
    Ember.run(function() { 
     application = Ember.Application.create(); 
     registry = application.registry; 
     application.deferReadiness(); 
    }); 
    } 
}); 

// Replace this with your real tests. 
test('it works', function(assert) { 
    initialize(registry, application); 

    // you would normally confirm the results of the initializer here 
    assert.ok(true); 
}); 

देखें: Ember blueprints

+1

सवाल यह है कि प्रारंभकर्ता ही परीक्षण करने के लिए है, लेकिन कैसे एक और इकाई (।। ई जी मॉडल) प्रारंभकर्ता से तरीकों बंदर समझौता का उपयोग करता है परीक्षण करने के लिए नहीं है। –

+0

एन, आप एम्बर.मिक्सीन को बंदर-पैच किए गए विधि को निकाल सकते हैं, फिर प्रारंभकर्ता के बजाय मिक्सिन आयात कर सकते हैं। – zhenhua

+0

मैं बंदर-पैचिंग एम्बर स्वयं हूं, मॉडल नहीं। उदाहरण के लिए, मैं 'Ember.MutableArray'' पर एक नई विधि जोड़ता हूं: एक '.destructiveMap()' विधि जो एक नई सरणी लौटने के बजाय दिए गए सरणी को संशोधित करती है। –

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