Ember CLI 测试复杂的模型关系

Posted

技术标签:

【中文标题】Ember CLI 测试复杂的模型关系【英文标题】:Ember CLI testing complicated model relationships 【发布时间】:2014-11-26 01:54:32 【问题描述】:

据我所知,在 ember CLI 中测试 ember-data 模型时,所有关系都必须列在 needs 中。如果结构简单,这很好,但在许多情况下会有多个层。

例如,如果设置模型时定义了以下关系:

Model a:
   belongsTo: b
   belongsTo: c

Model b:
   hasMany: a
   hasMany: d

Model c:
   hasMany: a
   belongsTo: e

Model d:
   hasMany b

Model e:
   hasMany c

那么任何这些模型的每个单元测试都需要needs 中列出的所有其他模型,例如测试c

needs: [
    'model:a' // Because c -> a
    'model:e' // Because c -> e
    'model:b' // Because c -> a -> b
    'model:d' // Because c -> a -> b -> d
]

我的实际配置要复杂得多,有 14 个模型,每个模型都与其他模型间接相关。

我的理解正确吗?有没有更有效的方法来做到这一点?还是有充分的理由这样做我错过了?

【问题讨论】:

我昨晚刚刚将一个项目升级到 0.0.46 并且也注意到了这种行为,我不记得它在以前的版本中发生过。可能是 ember 数据中的新内容? this PR 正在解决该问题。 【参考方案1】:

如果您使用 Ember 默认的“Ember-QUnit”,那么您必须列出所有需要的模型。

但我正在使用另一种测试方法,即 ember-data-factory-guy。 这用于在测试模型、组件、控制器等时创建工厂而不是夹具数据。

你可以通过它。

https://github.com/danielspaniel/ember-data-factory-guy

【讨论】:

以上是关于Ember CLI 测试复杂的模型关系的主要内容,如果未能解决你的问题,请参考以下文章

Ember 关系在测试环境中不尊重模型自定义适配器

Ember 数据模型中的计算属性不适用于 ember-cli-mirage 模型

Ember:访问模板中的侧载模型关系数据

具有嵌套 hasMany 或 belongsTo 关系的 Ember 模型

Ember Mirage 没有将模型作为 ember 对象传递

Ember 2 简单的多态关系