2017-03-14 15 views
6

फेंक दिया निगलने मैं एक साधारण घटक एकीकरण परीक्षण है: 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'); 
}); 

स्रोत कोड की तरह है:

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

2.3.0 मेरी एंबर-CLI संस्करण था , परीक्षण गुजर रहा था। हालांकि, मैंने अपने एम्बर-क्ली संस्करण को 2.11.1 में अपडेट करने के बाद, परीक्षण पास नहीं किया। त्रुटि थी:

actual: > 
     false 
    expected: > 
     true 

एम्बर रेंडर को अपवाद को निगलने क्यों शुरू करता है?

+0

मैंने मामले को चित्रित करने के लिए एक [twiddle] (https://ember-twiddle.com/23b50ad0f6a793b117451fa69fc0dd52) तैयार किया; लेकिन आश्चर्यजनक रूप से यह twiddle में काम करता है। तथापि; जब मैंने एक नया नया एम्बर एप्लीकेशन बनाया; मूल प्रश्न में वर्णित परीक्षण विफल रहता है। मामले को देखने के लिए कृपया [प्रोजेक्ट रिपोजिटरी] (https://github.com/feanor07/ember-component-init-error-swallowed) देखें। मुझे उम्मीद है कि कोई समाधान प्रदान करने के लिए किसी को इन निष्कर्षों से फायदा होगा। – alptugd

+0

मैंने इस बारे में ember.js में [एक मुद्दा] (https://github.com/emberjs/ember.js/issues/15013) भर दिया है। – ykaragol

उत्तर

4

अच्छी तरह से मुझे पूरा यकीन नहीं है कि एम्बर समुदाय ने परीक्षण को तोड़ने का फैसला क्यों किया; लेकिन अगर किसी को इसकी ज़रूरत है तो यह ठीक है।

आप के माध्यम से

ember install ember-qunit-assert-helpers 

आप आप सिर्फ assert.expectAssertion बजाय assert.throws उपयोग करने की आवश्यकता है कि throws एक अपवाद Ember.assert और अपने परीक्षण वर्ग में अपने कोड को बदलने की जरूरत ember-qunit-assert-helpers स्थापित करने की आवश्यकता।

उत्तर निम्नलिखित address पर जिथब मुद्दे से प्रदान किया गया है।

+1

इसके अलावा, [मूल पुल अनुरोध] (https://github.com/emberjs/ember.js/pull/14898) में प्रासंगिक चर्चा का एक बड़ा सौदा है, और [यह समस्या] (https://github.com/ emberjs/ember.js/issues/15013) में एक [twiddle प्रजनन] शामिल है (https://ember-twiddle.com/47c4cfbb571ac3fa83ab912f605ebc6a?fileTreeShown=false&openFiles=tests.integration.components.i-throw-test.js%2C) और काम के आसपास। – nickiaconis

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