मैंने $this->call($destination, $parameters, 'GET');
का उपयोग कर नियंत्रकों का परीक्षण करने के बारे में बहुत सारे दस्तावेज पढ़े हैं, लेकिन ऐसा लगता है कि यह भी रूट पर निर्भर है, और सही $destination
उपयोग।मार्ग का परीक्षण किए बिना लार्वेल में एक नियंत्रक को यूनिट परीक्षण करने का सबसे अच्छा तरीका क्या है
आम तौर पर यह ठीक है, लेकिन एक मार्ग से नियंत्रक तक पहुंच इकाई परीक्षण के लिए सही नहीं लगती है। मैं इकाई को नियंत्रक का परीक्षण करना चाहता हूं, मार्ग नहीं। मार्गों से निपटने के बिना इकाई परीक्षण नियंत्रकों के लिए कोई मानक तरीका है?
क्या मैन्युअल रूप से नियंत्रक को तुरंत चालू कर रहा है और विधि को पर्याप्त रूप से कॉल कर रहा है? जैसे
$controller = new MyController;
$response = $controller->someMethod($param);
$this->assertSomething($response);
शायद नियंत्रक इकाई परीक्षण नहीं किया जाना चाहिए (और केवल स्वीकृति परीक्षण किया है) और मेरे अनुरोध एक संकेत है कि मेरी नियंत्रकों बहुत भारी हो रहा है।
शायद, से हटा दिया गया संभावित, हो सकता है कि। ऐसा नहीं है कि मैं लार्वाले को अच्छी तरह से जानता हूं, लेकिन पहला सवाल है कि आप अपना खुद का प्रयास कर सकते हैं - बस नियंत्रक को तुरंत चालू करना। यदि लैरवेल के साथ कुछ सेवा कंटेनर शामिल हैं और यदि आपका नियंत्रक इसका उपयोग करता है तो आपके पास कुछ सहयोगी हो सकते हैं जिन्हें आपको नकली करने की आवश्यकता है, लेकिन शायद आप इसे स्वयं के टेस्टकेज़ में समाहित कर सकते हैं और यूनिट-परीक्षण नियंत्रकों को रखने के लिए इसका विस्तार कर सकते हैं अधिक सुंदर। लेकिन परीक्षण लिखना कोड लिखना है, अगर आप काम करते हैं तो आपको भी कोशिश करने की ज़रूरत है। – hakre
नियंत्रक को इंस्टेंट करना अभी तक ठीक काम कर रहा है लेकिन मुझे चिंता है कि यह "लैरावेल रास्ता" नहीं है। मैं लैरावेल के अपने टेस्ट केस का विस्तार कर रहा हूं, जो स्वचालित रूप से "ऐप" डीआईसी सेट करता है। – dave1010
ठीक है अगर यह डीआईसी ऐप को परीक्षण युगल के साथ सेट करता है, तो यह शायद परीक्षण के लिए ठीक है। यदि नहीं तो चीजें खराब हो सकती हैं। आपको शायद लैरावेल आईआरसी चैट में थोड़ा सा चर्चा करनी चाहिए, मैं कल्पना कर सकता हूं कि इस प्रकार की फीडबैक वहां चाहती है। वहां लोगों को लार्वेल के बारे में और जानकारी बताने में सक्षम होना चाहिए, तो मैं कर सकता हूं। – hakre