2

我正在为我的自定义 DS.RESTAdapter 编写测试,它使用我们自己的 SDK 作为传输器而不是 ajax 调用。现在,我想测试适配器 find、findAll、findQuery ... 需要我将 store 实例作为参数传递的函数。例如:

findAll: function(store, type, sinceToken){...}

为了能够对此进行测试,我需要传递在 ember-qunit 的 moduleFor 中不可用的“store”参数(与 moduleForModel 不同,您可以在测试实例中通过 this.store 访问 store)。

还有其他方法可以访问当前的 store 实例吗?

谢谢。

编辑:

我通过为存储和类型创建模拟来解决这个问题。您可以通过以下方式创建商店实例:

var store = DS.Store.create({
    adapter: @subject
})

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

4

1 回答 1

0

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

  setup: function () {
    Ember.run(App, App.advanceReadiness);
  },
  teardown: function () {
    App.reset();
  }
于 2014-11-04T10:42:02.473 回答