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 - 更新其他表后 Hasmany 关系中断