如果组件没有模板,如何检查组件的属性值?在应用程序中,组件被扩展,模板以这种方式提供。
//my-component.js
export default Ember.Component.extend({
foo: 'bar'
});
//my-component-test.hbs
integration: true;
test('it renders', function(assert) {
this.set('foo2', 'foo2');
this.render(hbs`{{my-component foo=foo2}}`);
assert.equal(/* ??? */, 'foo2');
});
我无法使用this.render(hbs'{{#my-component foo=foo2}}{{foo}}{{/my-component}}');
,因为没有屈服于foo。也无法直接访问组件。
答案 0 :(得分:3)
解决方案是使用单元测试。
import { moduleForComponent, test } from 'ember-qunit';
moduleForComponent('forms/base-form', 'Unit | Component | forms/base-form field', {
unit: true
});
test('it renders', function(assert) {
const foo2 = 'foo2';
const component = this.subject({foo: foo2});
assert.equal(component.get('foo'), 'foo2');
});
答案 1 :(得分:0)
在集成测试中,将组件视为一个盒子。为其分配值并从该组件检索通知/事件。例如,将值绑定到组件并使用它(按下按钮/输入值等)然后检查值。
同样在集成测试中,您可以使用jquery检查组件的渲染。如:
assert.equal(this.$("td").length, 6);
在您的情况下,可能是适合您的单元测试。 Ember Unit Testing