我安装了Ember 2.12并使用组件和测试创建了新项目,以确保在未提供必需属性时抛出错误。我无法通过这项测试。
伪component.hbs
{{value}}
{{yield}}
伪component.js
import Ember from 'ember';
export default Ember.Component.extend({
value: Ember.computed(() => {
Ember.assert("Someone forgot to provide a required value attribute");
})
});
虚设组分-test.js
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleForComponent('dummy-component', 'Integration | Component | dummy component', {
integration: true
});
test('it throws', function(assert) {
assert.throws(() => {
this.render(hbs`{{dummy-component}}`);
}, 'Error: Assertion Failed: Someone forgot to provide a required value attribute');
});
测试失败,并显示以下内容:
--- actual: > false expected: > true stack: > exception@http://localhost:7357/assets/test-support.js:7664:49 adapterDispatch@http://localhost:7357/assets/vendor.js:50288:22 dispatchError@http://localhost:7357/assets/vendor.js:28557:23 invokeWithOnError@http://localhost:7357/assets/vendor.js:10921:14 flush@http://localhost:7357/assets/vendor.js:10977:15 flush@http://localhost:7357/assets/vendor.js:11101:20 end@http://localhost:7357/assets/vendor.js:11171:28 run@http://localhost:7357/assets/vendor.js:11285:19 run@http://localhost:7357/assets/vendor.js:33262:32 render@http://localhost:7357/assets/test-support.js:8538:30 http://localhost:7357/assets/tests.js:129:19 throws@http://localhost:7357/assets/test-support.js:4609:17 http://localhost:7357/assets/tests.js:128:18 runTest@http://localhost:7357/assets/test-support.js:3696:34 run@http://localhost:7357/assets/test-support.js:3682:13 http://localhost:7357/assets/test-support.js:3860:15 process@http://localhost:7357/assets/test-support.js:5094:26 begin@http://localhost:7357/assets/test-support.js:5077:11 http://localhost:7357/assets/test-support.js:4294:11 message: > Error: Assertion Failed: Someone forgot to provide a required value attribute Log: | { type: 'error', text: 'null\n' } ...
整个过程花费不到5分钟
npm install -g ember-cli
ember new ember-test
ember g component dummy-component
<copy.paste> template, js and the test
ember test
答案 0 :(得分:3)
已提交github issue已提供解决方案解决方案;但我正在复制步骤以解决问题以帮助他人:
通过
安装ember-qunit-assert-helpersember install ember-qunit-assert-helpers
将throws
错误的代码更改为Ember.assert
。
在测试课程中,使用assert.expectAssertion
代替assert.throws
。