2012-10-30 17 views
5

जब PHP में जादू विधियों के यूनिट-परीक्षण कार्यान्वयन की बात आती है, तो उन तरीकों का आह्वान करने के अनुशंसित साधन क्या हैं?यूनिट परीक्षण जादू तरीके

मैं तीन विकल्प उपलब्ध देखें:

  • उन्हें स्पष्ट रूप से/सीधे लागू:

    $object->__get('someValue');

  • उन्हें परोक्ष रूप से लागू (का उपयोग करते हुए जो कुछ भी कार्रवाई करना है उन्हें ट्रिगर करने के लिए):

    $object->someValue; \\ Where __get() is implemented.

  • दोनों विधियों का उपयोग करके उन्हें आमंत्रित करना।

क्या कोई यूनिट परीक्षण दिग्गज है जो समझा सकता है कि कौन सा (यदि कोई है) स्पष्ट विकल्प होगा, और ऐसा क्यों हो सकता है?

(यह करीब व्यक्तिपरक को/बहस क्षेत्र नाच किया जा सकता है, लेकिन मैं उम्मीद में पूछना होगा कुछ आम तौर पर स्वीकार सिद्धांतों देखते हैं कि मैं जब यह सवाल आ रहा विचार करना चाहिए।)

+0

मैं कहूंगा कि – JvdBerg

+0

मैं कोई विशेषज्ञ नहीं हूं, लेकिन ऐसा लगता है कि पहला व्यक्ति बेहतर (स्वयं) दस्तावेज परीक्षणों का नेतृत्व करेगा। – SomeKittens

उत्तर

6

आप परीक्षण किया जाना चाहिए देखने योग्य व्यवहार। तो, दूसरा एक ($obj->property) परीक्षण किया जाना चाहिए, कोई प्रश्न नहीं।

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

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