2014-11-04 3 views
2

Я пишу тест для своего собственного DS.RESTAdapter, который использует наш собственный SDK в качестве транспортера вместо вызовов ajax. Теперь я хочу протестировать адаптеры find, findAll, findQuery ... функции, которые требуют от меня передать экземпляр хранилища в качестве параметра. Например:Ember QUnit moduleFor (testing) adapter retrieve Store

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

Чтобы быть в состоянии проверить это, я должен пройти «магазин» параметров, который не доступен в moduleFor в Ember-QUnit (в отличие от moduleForModel, где вы можете получить доступ через магазин this.store в тестовый экземпляр).

Есть ли другой способ получить доступ к текущему экземпляру магазина?

Спасибо.

Edit:

Я решил эту проблему, создав издевается для обоих, магазина и типа. Вы можете создать экземпляр магазина по:

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

И макетом для типа, так же, как обычный объект с заданными свойствами для испытания.

+0

Я не уверен, если вы может напрямую использовать 'moduleFor', но используя только' module', вы должны иметь доступ к нему из экземпляра приложения. Вы можете использовать 'App .__ container __. Lookup ('store: main')', чтобы вернуть экземпляр хранилища данных ember-data. – jakecraige

+0

Да, но это потребует от меня создания нового экземпляра приложения, которого я хотел избежать. Я решил создать mocks для обоих, хранить и печатать. Спасибо за комментарий. – IBQ

+0

Любой шанс, что ваш код где-то в сети? Глядя на то, чтобы достичь того же, и может сэкономить много рытья. Очень признателен. – getdave

ответ

0

Вы можете издеваться над этим методом (например, используя Sinon plugin for QUnit). Еще одно решение для доступа в магазин (но я не уверен, что он будет работать в вашем случае), который помог мне получить доступ магазин из глобального пространства имен использует setup и teardown методы:

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

На самом деле я закончил создание mocks для «store» и «type». Спасибо за ответ, хотя. – IBQ

Смежные вопросы