2016-04-13 8 views
0

私は、HTMLを作成するヘルパーを使用するEmberコンポーネントを持っており、結合コンポーネントとヘルパーHTMLの結果であるHTMLをチェックするテストを作成しようとしています。HTMLを出力するヘルパーを使用するコンポーネントについて、EmberでのQUnit統合テストを行うにはどうすればよいですか?

例は...
コンポーネントが生成します。<div class="one"></div>

ヘルパーが生成:<div class="two"></div>

結合生成:何が起こっている<div class="one"><div class="two"></div></div>

がHTMLBarsはヘルパーのHTMLを生成しないことです。ヘルパーに入力されたJSON値を入力します。

だから、テストが生成:<div class="one">true</div>

私はヘルパーがアクティブであることを言いたいが含まれてする必要がありますか?

答えて

2

コードにバグが存在する必要があります。コンポーネントが統合テストのためにヘルパーを消費するかどうかは関係ありません。私は証明するために、短いエンバーひねりを書かれている:https://ember-twiddle.com/a50c05ec5a050a4c72fd3c53445e3e1d

// /app/helpers/hello-world.js 
import Ember from 'ember'; 

export function helloWorld(params/*, hash*/) { 
    return new Ember.Handlebars.SafeString('<strong>Hello World!</strong>'); 
} 

export default Ember.Helper.helper(helloWorld); 

// /app/components/component-using-helper.js 
import Ember from 'ember'; 

export default Ember.Component.extend({ 
    tagName: 'p' 
}); 

// /tests/integration/components/component-using-helper.js 

import { moduleForComponent, test } from 'ember-qunit'; 
import hbs from 'htmlbars-inline-precompile'; 

moduleForComponent('component-using-helper', 'TODO: put something here', { 
    integration: true 
}); 

test('it renders', function(assert) { 
    this.render(hbs`{{component-using-helper}}`); 

    assert.ok(this.$('p').length === 1); 
    assert.ok(this.$('p strong').length === 1); 
    assert.equal(this.$('p strong').html().trim(), 'Hello World!'); 
}); 

テストは合格します。

+0

はい、以前私が気づいていなかった私のjsonにエラーが見つかりました。どうもありがとうございます!私のコードを解読してくれてありがとう、私はコードブロックを動作させるのに問題があった。 –

関連する問題