首页 > 解决方案 > 我如何将作为数组传递的类属性设置为内部渲染组件以进行 ember 测试,因为目前使用 set doesnt pass array?

问题描述

用户在组件类上定义

// recipients-component.js
export default class RecipientsComponent extends Component {

get users () {
return [{name:'jerry'},{name:'ana'},{name:'erik'}]
}

get selectedUsers () {
return [{name:'jerry'}]
}

}

此用户被传递给 powerSlectMultiple 组件


// recipients-component.hbs
  <div class="card-row">
 <h3>Recipients</>
        <div class="card-row">
          <PowerSelectMultiple
        @placeholder="Select recipient(s)"
        @searchEnabled={{true}}
        @selected={{this.selectedUsers}}
        @options={{this.users}}
        @onChange={{fn (mut this.selectedUsers)}}
        @onKeydown={{this.handleKeydown}}
        @searchField="name"
        as |user|
      >
        {{user.name}}
      </PowerSelectMultiple>
  </div>

当我使用 this.set() 创建用户数组时,不呈现用户数组


// recipients-component-test.js
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';

module('Integration | Component | recipients-component', function (hooks) {
  setupRenderingTest(hooks);

  test('it renders users', function (assert) {

   this.set('users', [{name:'jerry'},{name:'ana'},{name:'erik'}]); // not working
   await render(hbs`<Recipients-component  />`);

    assert.equal(this.$('h3').text().trim(), 'Recipients');
  });
});

标签: ember.jsember-testing

解决方案


推荐阅读