我正在为我的自定义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
})
和类型的模拟,就像具有测试所需属性的普通对象一样。
答案 0 :(得分:0)
您可以模拟此方法(例如,使用Sinon plugin for QUnit)。访问商店的另一个解决方案(但我不确定它是否适用于您)帮助我从全局命名空间访问商店是使用setup
和teardown
方法:
setup: function () {
Ember.run(App, App.advanceReadiness);
},
teardown: function () {
App.reset();
}