2015-01-27 30 views
5

stdlib başlatıcım var. Bu başlatıcıda, bazı yerleşik Ember sınıflarını yeniden açıp bazı özel yöntemler ekleyin. Örneğin, reverseEach'u Ember.Enumerable ve Array'a ekledim.Bir birim testinde bir başlatıcı kullanılıyor mu?

Onlar app iyi çalışır, ancak testlerde i almak "reverseEach: tanımsız bir işlev değil".

Nasıl Test başlatıcı kullanması gerektiğini belirtmek mı?

Ben needs: [..., 'initializer:stdlib'] çalıştı. Bunun üzerinde yanılmıyor, ama hala "tanımsız" hatası alıyorum.

`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'] 

cevap

-1

Sen, bu testi dahil, sizin için örnek kod üretecektir ember g initializer stdlib kullanabilirsiniz:

İşte bir örnek testi.

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); 
}); 

bakınız: Ember blueprints

+1

soru başlatıcısı kendini test ama nasıl yöntemler başlatıcısı gelen maymun yamalı kullanan başka bir birim (. E. G modeli) test etmek için nasıl değildir. –

+0

tr, bir maymun patentli yöntemini bir Ember.mixin'e ayıklayabilir, sonra da başlatıcı yerine Mixin'i içe aktarabilirsiniz. – zhenhua

+0

Ember'in kendisinde maymun-ben var, model değil. Örneğin, yeni bir dizi döndürmek yerine verilen diziyi değiştiren ".destructiveMap()" yöntemine "Ember.MutableArray": adlı yeni bir yöntem ekliyorum. –

İlgili konular