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开始吞下抛出的异常?
好吧,我不太确定为什么 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 问题提供。