【发布时间】:2014-12-31 02:29:52
【问题描述】:
我正在为我的自定义 DS.RESTAdapter 编写测试,它使用我们自己的 SDK 作为传输器而不是 ajax 调用。现在,我想测试适配器 find、findAll、findQuery ... 需要我将 store 实例作为参数传递的函数。 例如:
findAll: function(store, type, sinceToken){...}
为了能够对此进行测试,我需要传递在 ember-qunit 的 moduleFor 中不可用的“store”参数(与 moduleForModel 不同,您可以在测试实例中通过 this.store 访问 store)。
还有其他方法可以访问当前的 store 实例吗?
谢谢。
编辑:
我通过为 store 和 type 创建模拟来解决这个问题。 您可以通过以下方式创建商店实例:
var store = DS.Store.create({
adapter: @subject
})
还有一个用于类型的模拟,就像一个具有测试所需属性的普通对象。
【问题讨论】:
-
我不确定您是否可以直接使用
moduleFor,但仅使用module您应该可以从应用实例访问它。您可以使用App.__container__.lookup('store:main')来取回 ember-data 存储的实例。 -
是的,但这需要我创建一个新的 App 实例,而我想避免这种情况。我通过为存储和类型创建模拟来解决。不过感谢您的评论。
-
你的代码有可能在某处在线吗?希望实现同样的目标,并且可以节省大量挖掘工作。非常感谢。
标签: testing ember.js ember-cli ember-qunit