ember-data
संस्करण 1.0.0-beta.16
की दुकान के लिए the blog-post के अनुसार अब एक सेवा के रूप में इस्तेमाल किया जा सकता है:मैं क्यूनेट का उपयोग करके एम्बर यूनिट परीक्षणों में एक सेवा के रूप में स्टोर पर कैसे निर्भर करता हूं?
TweetComposerComponent = Ember.Component.extend({
store: Ember.inject.service()
});
हालांकि, मैं इस तरह के एक घटक पर qunit
इकाई परीक्षण कैसे करना है पता नहीं कर सकते हैं।
moduleForComponent('tweet-composer', {
needs: ['service:store']
});
और: मैं निम्नलिखित की कोशिश की है
moduleForComponent('tweet-composer', {
needs: ['store:main']
});
और जब मैं पूर्व मैं एक त्रुटि Attempting to register an unknown factory: 'service:store'
हो और अगर मैं तो बाद कर store
undefined
है।
विचार?
(मैं ember-cli
शैली ऐप लिख रहा हूं)।
अद्यतन:
यह वहाँ एंबर-परीक्षण सहायकों रेपो में इस के लिए एक open issue लगता है।
`import TestModuleForComponent from 'ember-test-helpers/test-module-for-component'`
`import { createModule } from 'ember-qunit/qunit-module'`
# This assumes the last argument, the callbacks, is present, although it
# does support the description being an optional argument.
moduleForStoreComponent = ->
args = Array.prototype.slice.call arguments
callbacks = args[args.length-1]
# Wrap the original beforeEach callback in a modified version that
# also sets up the store for the test container.
originalSetup = callbacks.beforeEach
callbacks.beforeEach = ->
DS._setupContainer(@container)
originalSetup.call(@) if originalSetup
callbacks.store = ->
@container.lookup('store:main')
args.unshift TestModuleForComponent
createModule.apply @, args
`export default moduleForStoreComponent`
स्वीकृति परीक्षण excruciatingly धीमी गति से कर रहे हैं। अगर मैं आवेदन के कई पहलुओं का परीक्षण कर रहा हूं तो मैं केवल उनका उपयोग करना पसंद करता हूं। यदि मैं बिल्कुल दो टुकड़ों का परीक्षण कर रहा हूं, तो यह उन दो टुकड़ों को तुरंत चालू करने और उन्हें एक साथ परीक्षण करने के लिए बहुत अधिक समझ में आता है, लेकिन शेष ऐप के अलगाव में। –
मुझे आपके द्वारा उल्लेख किए गए धागे से अवगत है, और मैं सलाह की सराहना करता हूं, लेकिन मैं शिविर में हूं जो महसूस करता है कि कुछ घटकों के अंदर स्टोर पहुंच को सक्षम करने के लिए कुछ सीमित, उपयुक्त उपयोग हैं।विशेष रूप से, जब घटक में प्रतिनिधित्व किया गया राज्य यूआरएल से नहीं लिया गया है, बल्कि घटक का एक आंतरिक और पृथक पहलू है, तो यह घटक में इस राज्य को अलग करने और सभी मार्गों को प्रदूषित करने के लिए समझ सकता है जो घटक को विशेषता देते हैं मॉडलों को तुरंत चालू करने के लिए आवश्यक तर्क और उन्हें घटक परिवर्तनों के लिए राज्य आंतरिक के रूप में अद्यतन करें। –
सहमत हैं, आपके पास एक अच्छा बिंदु है। फिर भी, इस प्रकार के परीक्षण (आपके घटक) में, आप जो परीक्षण कर रहे हैं वह घटक का तर्क स्टोर नहीं है। इसलिए यह वास्तव में कोई फर्क नहीं पड़ता कि डेटा कहां से आ रहा है। परीक्षण करने की क्या ज़रूरत है यह सत्यापित करता है कि डेटा के विभिन्न टुकड़े सही घटनाओं को ट्रिगर करते हैं और परिणामस्वरूप अपेक्षित आउटपुट होते हैं। – givanse