3

当组件没有模板时如何检查组件的属性值?在应用程序中,组件被扩展并以这种方式提供模板。

//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 没有产生。直接访问组件也是不可能的。

4

2 回答 2

4

解决方案是改用单元测试。

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');
});
于 2016-03-27T15:52:53.797 回答
0

在集成测试中,将组件视为一个盒子。为其赋值并从该组件检索通知/事件。例如,将一个值绑定到一个组件并使用它(按下按钮/输入一个值等),然后检查该值。

同样在集成测试中,您可以使用 jquery 检查组件的呈现。如:

  assert.equal(this.$("td").length, 6);

在您的情况下,可能是适合您的单元测试。 Ember 单元测试

于 2016-03-28T06:22:55.623 回答