在Ember js中,如何在单元测试中创建或模拟hasMany关系

绍兹

我正在对具有DS.hasMany()关系属性的模型进行单元测试每当执行以下单元测试时,我都会在测试运行器中不断出现此错误:Error: Assertion Failed: All elements of a hasMany relationship must be instances of DS.Model, you passed [<Ember.Object:ember367>,<Ember.Object:ember368>]

请问有人可以对此有所了解吗?

模型:

export default DS.Model.extend({
  accounts: DS.hasMany('account'),
  servicesAccounts: DS.hasMany('services-account'),
  address: MF.fragment('address'),
  appEligibilities: MF.fragmentArray('app-eligibility'),

  appsForPremise: Ember.computed('accounts', function () {
    return DS.PromiseArray.create({
      promise: this.get('store').find('app', {
        account: this.get('accounts').mapBy('id')
      })
    });
  })
});

模型单项测试:

import { moduleForModel, test } from 'ember-qunit';
import Ember from 'ember';

moduleForModel('premise', 'Unit | Model | premise', {
  needs: [
    'model:account',
    'model:services-account',
    'model:address',
    'model:app-eligibility'
  ]
});

test('Apps for premise', function (assert) {
  let model = this.subject({
      accounts: [Ember.Object.create({
        id: 'account-1'
      }),
      Ember.Object.create({
        id: 'account-2'
      })],
      appsForPremise: sinon.spy()
    });

  Ember.run(() => {
  });

  assert.equal(model.get('appsForPremise'), '[{id: account-1}, {id: account-2}]');

});
伊戈尔

您不能将常规余烬对象传递给hasMany关系,它们必须是存储模型对象。您可以使用商店创建它们,即

 const store = this.store();
 Ember.run(() => {
    const model = this.subject({
        accounts: [
          store.createRecord('services-account', {
            id: 'account-1'
        }),
          store.createRecord('services-account',{
            id: 'account-2'
        })],
        appsForPremise: sinon.spy()
    });
 });

调用store方法必须进入运行循环,否则Ember会抱怨。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ember.js中执行单元测试?

来自分类Dev

如何在Ember中显示HasMany关系

来自分类Dev

如何在Ember中显示HasMany关系

来自分类Dev

如何在Ember.js单元测试中为控制器设置模型数据

来自分类Dev

如何在单元测试中访问Ember中的速记助手?

来自分类Dev

如何在Ember-Cli中对类方法进行单元测试

来自分类Dev

Ember.js:如何解决Ember.Route中的异步hasMany关系?

来自分类Dev

如何在Ember.js模板中显示hasMany记录?

来自分类Dev

如何在Ember.js中对hasMany项目进行排序

来自分类Dev

Ember js中的hasMany关联

来自分类Dev

如何在Ember单元测试中使用库?

来自分类Dev

在Ember / Ember数据中访问嵌套的hasMany关系

来自分类Dev

在Ember / Ember数据中访问嵌套的hasMany关系

来自分类Dev

如何为Ember.js适配器/序列化器创建单元测试?

来自分类Dev

Ember-cli:模型失败的关系单元测试

来自分类Dev

ember.js,如何在新创建的记录中设置关系

来自分类Dev

在ember-cli单元测试中如何访问需求元素

来自分类Dev

在ember集成测试中模拟ember-select2选择

来自分类Dev

在Ember组件测试中模拟用户输入

来自分类Dev

如何在Ember.js中删除模型的hasMany关联中的所有记录

来自分类Dev

如何在Ember.js中删除模型的hasMany关联中的所有记录

来自分类Dev

Ember hasMany 关系保存在创建

来自分类Dev

如何在ember中创建枚举服务

来自分类Dev

单元测试Ember服务以获取数据

来自分类Dev

如何使用异步路由进行Ember单元测试?

来自分类Dev

如何在Ember.js中为Ember数据模型创建Promise

来自分类Dev

如何在ember js中添加类

来自分类Dev

如何在单元测试中将商店注入Ember.Service?

来自分类Dev

Ember.js中的多态关系

Related 相关文章

热门标签

归档