2015-08-14 62 views
0

我正在嘗試跟隨Alisdar's新的集成測試,而不是在我的燼組件上進行單元測試。編寫Ember.js組件集成測試與子組件

我真的很喜歡這種新方法,但是在測試組件的視圖中調用另一個組件時,我遇到了問題。

阿爾法分量:

App.TestAlphaComponent = Ember.Component.extend({ 
    listWords: [] 
}); 

阿爾法分量視圖使用的β分量:

{{#each listNumbers as num}} 
    {{test-beta word=num}} 
{{/each}} 

測試部件:

App.TestBetaComponent = Ember.Component.extend({ 
    word: 'hello world' 
}); 

測試組件視圖:

<h1>{{ word }} </h2> 

摩卡柴集成測試TestAlphaComponent

import Ember from 'ember'; 
import { expect } from 'chai'; 
import { 
    describeComponent, 
    it 
} from 'ember-mocha'; 
import hbs from 'htmlbars-inline-precompile'; 
import tHelper from "ember-i18n/helper"; 
import testBeta from "app/components/test-beta"; 

var foo; 

describeComponent(
    'test-alpha', 
    'Integration: testAlphaComponent', 
    { 
    integration: true 
    }, 
    function() { 
    beforeEach(function() { 
     this.container.lookup('service:i18n').set('locale', 'en'); 
     this.registry.register('helper:t', tHelper); 
     this.registry.register(
     'component:test-beta', 
     testBeta 
    ); 

     Ember.run(this, 'set','foo', ['foo','bar','baz']); 
     this.render(hbs`{{test-alpha listWords=foo}}`); 
    }); 
    it('prints foo bar baz in h1s', function() { 
     expect($('h1').to.have.length(3); 
    }); 
    }); 
); 

我的測試失敗。 testBeta永遠不會被調用,也不會抱怨丟失的組件。將testBetaComponent注入testAlpha的集成測試環境的正確方法是什麼?

回答