余烬渲染hbs吞咽抛出错误

Ahm*_*ınç 6 qunit ember.js ember-cli ember-qunit

我有一个简单的组件集成测试:

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');
});
Run Code Online (Sandbox Code Playgroud)

component.js的源代码如下:

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

虽然我的ember-cli版本是2.3.0,但测试正在通过.但是,在我将我的ember-cli版本更新为2.11.1后,测试没有通过.错误是:

    actual: >
        false
    expected: >
        true
Run Code Online (Sandbox Code Playgroud)

为什么ember render开始吞下抛出的异常?

fea*_*r07 4

好吧,我不太确定为什么 Ember 社区决定打破解释的测试;但如果有人需要的话,这里是修复程序。

您需要通过安装ember-qunit-assert-helpers

ember install ember-qunit-assert-helpers
Run Code Online (Sandbox Code Playgroud)

您需要更改您的代码,将throws异常添加Ember.assert到您的测试类中,您只需使用assert.expectAssertion而不是assert.throws.

答案由以下地址的 github 问题提供。