余烬渲染hbs吞咽抛出错误

时间:2017-03-14 08:31:27

标签: ember.js ember-cli qunit 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');
});

component.js的源代码如下:

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

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

    actual: >
        false
    expected: >
        true

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

1 个答案:

答案 0 :(得分:4)

嗯,我不太清楚为什么Ember社区决定打破测试解释;但如果有人需要,这里有解决方案。

您需要通过

安装ember-qunit-assert-helpers
ember install ember-qunit-assert-helpers

您需要将throws例外更改为Ember.assert的代码,而在测试类中,您只需要使用assert.expectAssertion代替assert.throws

答案来自以下address的github问题。