2011-02-09 13 views
25

मुझे गलत मत समझो। मुझे लगता है कि दोनों परियोजनाएं शानदार हैं।PHP में ककड़ी पर बीट

लेकिन दोनों php और गहरे लाल रंग का डेवलपर मुझे आश्चर्य है कि अगर वहाँ कोई बाध्यकारी कारण, संभव भाषा बाधा के अलावा हैं, तब भी जब php या कुछ php ढांचे के साथ काम क्यों एक BehatCucumberBDD के लिए खत्म हो गया (cuke4php साथ) का चयन होगा।

उत्तर

69

मैं एक बेथ डेवलपर हूं।

क्यों मैं ककड़ी अनुकूलन के बजाय Behat विकसित की हैं:

  1. स्पीड। रूबी कोड से PHP को बूटस्ट्रैप/चलाने के लिए कोई आसान तरीका नहीं है। इसका मतलब है कि आपको तार/प्रॉक्सी और अन्य चीजों को लागू करने की आवश्यकता है, जो आपके परीक्षणों को बेहद धीमा कर देता है। और धीमे परीक्षण एक परीक्षण नहीं है, यह सिर्फ वह कोड है जो आपके ग्राहक के पैसे खाता है।
  2. एक्सटेंसिबिलिटी। बहुत कम PHP डेवलपर्स हैं जो वास्तव में रूबी को जानते हैं। उपकरण का उपयोग करना मुश्किल है, कि कई समझ में नहीं आते हैं! ककड़ी के लिए लिखे गए सभी उदाहरण रूबी कोड हैं और आप ककड़ी स्रोतों को भी नहीं देख सकते हैं, क्योंकि, मान लें, आपको रूबी नहीं पता है। जब आपको बस टैक्सी की आवश्यकता होती है तो यह एक पनडुब्बी खरीदने जैसा है।

सुविधाओं के संदर्भ में, बेथ और ककड़ी लगभग समान हैं (मैंने इसे प्राप्त करने के लिए कड़ी मेहनत की है)। लेकिन एक PHP डेवलपर के परिप्रेक्ष्य से गति/विस्तारशीलता/तर्क के संदर्भ में - बेथ बेहतर है, क्योंकि यह एक तेज़ और साफ देशी PHP उपकरण है। बेथ एक ककड़ी बंदरगाह नहीं है, जैसा कि आप पहले सोच सकते हैं, यह पूरी तरह से PHP 5.3 पर जमीन से बनाया गया है। बेहट अपने इनपुट रीडिंग (फीचर्स) और आउटपुट फॉर्मेटिंग (फॉर्मेटर्स) के साथ ककड़ी अनुकरण करने की कोशिश कर रहा है, लेकिन यह ककड़ी बंदरगाह नहीं है (PHP में कोई रूबी सिंटैक्स निर्माण नहीं है)।

+1

धन्यवाद, यही वह जवाब है जिसे मैं ढूंढ रहा था। – Krule

+9

चट्टानों का व्यवहार! चलते रहें :) –

+2

हाँ, PHP के लिए ककड़ी के बजाय बेथ के लिए +1, यदि आप सिम्फनी 2 का उपयोग करते हैं तो एक बेथ बंडल (http://symfony2bundles.org/Behat/BehatBundle) है! – InvertedAcceleration

1

फिर भी एक और कारण है कि आप की आवश्यकता हो सकती Behat यहाँ समझाया गया है: https://cucumber.io/blog/2014/09/10/when-cucumbers-go-bad

आप PHP परियोजना है, तो आप आंतरिक परीक्षण (डोमेन परत, अनुप्रयोग परत) के लिए संदर्भ बना सकते हैं।

संबंधित मुद्दे