我正在为我的自定义 DS.RESTAdapter 编写测试,它使用我们自己的 SDK 作为传输器而不是 ajax 调用。现在,我想测试适配器 find、findAll、findQuery ... 函数,这些函数需要我将 store 实例作为参数传递。 例如:
findAll: function(store, type, sinceToken){...}
为了能够对此进行测试,我需要传递“store”参数,这在 ember-qunit 的 moduleFor 中不可用(不像在 moduleForModel 中,您可以在测试实例中通过 this.store 访问商店)。
还有其他方法可以访问当前的商店实例吗?
谢谢。
编辑:
我通过为存储和类型创建模拟来解决这个问题。 您可以通过以下方式创建商店实例:
var store = DS.Store.create({
adapter: @subject
})
还有一个模拟类型,就像一个具有测试所需属性的普通对象。
最佳答案
您可以模拟此方法(例如,使用 Sinon plugin for QUnit )。另一种访问商店的解决方案(但我不确定它是否适用于您的情况)帮助我从全局命名空间访问商店是使用 setup
和 teardown
方法:
setup: function () {
Ember.run(App, App.advanceReadiness);
},
teardown: function () {
App.reset();
}
关于testing - Ember QUnit 模块用于(测试)适配器检索存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26731095/