【问题标题】:ember render hbs swallowing thrown errorember 渲染 hbs 吞咽抛出错误
【发布时间】:2017-03-14 08:31:27
【问题描述】:

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

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 渲染开始吞噬抛出的异常?

【问题讨论】:

  • 我准备了一个twiddle来说明这个案例;但令人惊讶的是,它在旋转中起作用。然而;当我创建一个全新的 ember 应用程序时;如原始问题所述,测试失败。请查看project repository 只是为了查看案例。我希望有人能从这些发现中受益并提供解决方案。
  • 我已经在 ember.js 中填写了 an issue 的相关信息。

标签: ember.js ember-cli qunit ember-qunit


【解决方案1】:

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

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

ember install ember-qunit-assert-helpers

您需要将throws 异常的代码更改为Ember.assert,并且在您的测试类中您只需要使用assert.expectAssertion 而不是assert.throws。

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多