Ember QUnit moduleFor(测试)适配器检索Store

时间:2014-11-04 08:59:19

标签: testing ember.js ember-cli ember-qunit

我正在为我的自定义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
})

和类型的模拟,就像具有测试所需属性的普通对象一样。

1 个答案:

答案 0 :(得分:0)

您可以模拟此方法(例如,使用Sinon plugin for QUnit)。访问商店的另一个解决方案(但我不确定它是否适用于您)帮助我从全局命名空间访问商店是使用setupteardown方法:

  setup: function () {
    Ember.run(App, App.advanceReadiness);
  },
  teardown: function () {
    App.reset();
  }