2017-03-14 1 views
6

を飲み込むレンダリング:私の燃えさし-cliのバージョンは2.3.0でしたがエンバーHBSは、私は単純なコンポーネントの統合テスト持って投げエラー

export default Ember.Component.extend({ 
    layout, 
    init() { 
     this._super(...arguments); 
     throw 'my-custom-input component error'; 
    } 
} 

:component.jsの

test('it throws error my-custom-input is called', function(assert) { 
    assert.throws(() => { 
     this.render(hbs`{{my-custom-input}}`); 
    }, /my-custom-input component error/, 'Error must have been thrown'); 
}); 

ソースコードをようなものです、テストは合格となりました。しかし、ember-cliのバージョンを2.11.1にアップデートした後、テストは合格しませんでした。エラーは次のとおりです。

actual: > 
     false 
    expected: > 
     true 

なぜ、エバーレンダリングがスローされた例外を飲み込むのですか?

+0

私は大文字小文字を説明するために[twiddle](https://ember-twiddle.com/23b50ad0f6a793b117451fa69fc0dd52)を用意しました。驚くべきことに、それはひねりの中で働く。しかしながら;私は真新しいエバーアプリケーションを作成しました。元の質問に記載されているようにテストは失敗します。ケースを見るために[プロジェクトリポジトリ](https://github.com/feanor07/ember-component-init-error-swallowed)をチェックしてください。私は誰かが解決策を提供するためにこれらの発見の恩恵を受けることを望みます。 – alptugd

+0

これについてember.jsに[issue](https://github.com/emberjs/ember.js/issues/15013)を記入しました。 – ykaragol

答えて

4

まあ、Emberコミュニティがテストを中断することを決めた理由はよく分かりません。だれでもそれが必要ならばここに修正があります。

は、あなたがあなただけのassert.expectAssertionの代わりassert.throwsを使用する必要がthrows例外そのEmber.assertにし、あなたのテストクラスにコードを変更する必要があり

ember install ember-qunit-assert-helpers 

経由ember-qunit-assert-helpersをインストールする必要があります。

回答は、githubの問題addressから提供されています。

+1

また、[元のプルリクエスト](https://github.com/emberjs/ember.js/pull/14898)には関連性の高い議論が多く含まれており、[この問題](https://github.com/ emberjs/ember.js/issues/15013)には[回転再生](https://ember-twiddle.com/47c4cfbb571ac3fa83ab912f605ebc6a?fileTreeShown=false&openFiles=tests.integration.components.i-throw-test.js%2C)と回避策。 – nickiaconis

関連する問題