2014-11-04 3 views
2

나는 ajax 호출 대신 전송기로 자체 SDK를 사용하는 내 사용자 지정 DS.RESTAdapter에 대한 테스트를 작성하고 있습니다. 이제 find, findAll, findQuery ... 함수의 인스턴스를 매개 변수로 전달해야하는 어댑터를 테스트하고 싶습니다. 예를 들어 : 당신이 this.store 내를 통해 저장소에 액세스 할 수있는Ember QUnit moduleFor (테스트) 어댑터 검색 저장소

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

이를 테스트 할 수 있도록, 내가 moduleForModel 달리 (엠버 - qunit에 moduleFor에서 사용할 수 없습니다 "저장"PARAM을 전달해야 테스트 인스턴스).

다른 방법으로 현재 상점 인스턴스에 액세스 할 수 있습니까?

감사합니다.

편집 :

나는, 저장 및 유형 모두를위한 모의 객체를 생성하여이 문제를 해결했다. 당신은에 의해 매장 인스턴스를 만들 수 있습니다 단지 시험에 필요한 속성을 가진 일반 객체로,

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

그리고 유형에 대한 모의.

+0

: (하지만 난 그것이 당신의 경우에 작동 잘 모르겠어요) 글로벌 네임 스페이스에서 저장소에 액세스하기 위해 나에게 도움이되는 저장소에 액세스하기위한 또 다른 해결책은 setupteardown 방법을 사용하고 있습니다 직접'moduleFor'를 사용할 수 있습니다 만,'module'을 사용하면 앱 인스턴스에서 접근 할 수 있어야합니다. 'App .__ container __. lookup ('store : main')'을 사용하여 ember-data 저장소의 인스턴스를 되돌릴 수 있습니다. – jakecraige

+0

네,하지만 그건 피하고 싶었던 새로운 App 인스턴스를 만들어야합니다. 두 가지 유형, 상점 및 유형에 대한 모의를 작성하여 해결했습니다. 댓글을 주셔서 감사합니다. – IBQ

+0

어딘가에 코드가 온라인 상태 일 가능성이 있습니까? 똑같은 일을 성취하고 많은 파기를 구할 수 있습니다. 매우 감사. – getdave

답변

0

이 방법을 조롱 할 수 있습니다 (예 : Sinon plugin for QUnit 사용). 난 당신이 있는지 확실하지 않습니다

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

사실 나는 "저장소"와 "유형"모두에 대한 모의 방송을 만들었습니다. 답변을 주셔서 감사합니다. – IBQ