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

Posted

技术标签:

【中文标题】Ember 关系在测试环境中不尊重模型自定义适配器【英文标题】:Ember Relationships Are Not Respecting Model Custom Adapter in Test Environment 【发布时间】:2020-04-07 20:19:00 【问题描述】:

在我的 Ember.js 应用程序中,我有一个模型公司,它带有一个指向 API 的自定义适配器。我还有一个带有自定义适配器的用户模型,该适配器指向不同的 API 以及与公司的 belongsTo 关系(通过 user#companyId 属性)。

手动执行应用时,代码中对 Company 的所有引用似乎都会向 Company 的自定义适配器中定义的正确端点发送请求。但是,在运行测试(单元测试和验收测试)时,对公司 this.store.find... 的直接查询会命中正确的端点 (company-host.com/api/companies/1),但通过与用户 @ 的关系引用公司987654322@ 指向用户适配器的主机和命​​名空间 (user-host.com/api/companies/1)。

我是 Ember 的新手,如有任何帮助或见解,我们将不胜感激。

【问题讨论】:

【参考方案1】:

当您调用 user.company 时,它将使用您的用户适配器的 findBelongsTo 方法,从用户适配器获取主机和命名空间。要解决此问题,您需要重写 findBelongsTo 方法,以使用正确的 ID 调用公司适配器的 findRecord。

【讨论】:

以上是关于Ember 关系在测试环境中不尊重模型自定义适配器的主要内容,如果未能解决你的问题,请参考以下文章

如何为 ember.js 创建自定义适配器?

Ember js - 更新其他表后 Hasmany 关系中断

如何在 ember cli 生成的模型中设置休息适配器

可能保存模型时正在处理 ember-data 中的自定义服务器端错误

如何在 Ember 模型单元测试中检查属性属性类型?

ListView 和自定义适配器在 Kotlin 中不起作用