2010-03-08 11 views
12

मैं आने वाले यूआरएल को पार्स करने के लिए कुछ PHP कोड लिख रहा हूं। यह $_SERVER और $_GET जैसे PHP ग्लोबल्स पर भारी निर्भर करता है। मैं PHPUnit इकाई परीक्षण setUp() फ़ंक्शन में इसे मैन्युअल रूप से सेट करने की सोच रहा हूं। क्या ऐसा करने का कोई बेहतर तरीका है?

उत्तर

11

एक विचार $ _SERVER और $ _GET को सीधे उन्हें एक्सेस करने के बजाय कक्षाओं में लपेटना होगा, ताकि आपको उन पर भरोसा न करें। आप आम ढांचे में अक्सर इस दृष्टिकोण को देखते हैं। इस तरह आप सुपरग्लोबल्स की स्थिति को सेट किए बिना आसानी से अनुरोध को दबा सकते हैं या नकल कर सकते हैं।

कृपया यह भी देखना Global State in the PHPUnit Manual

+0

पर अध्याय आप में से एक उदाहरण देता हूँ सकता है कि कैसे एक आवरण के बिना सेटअप superglobals के राज्य के लिए? (भले ही यह बदबूदार है) – JayIsTooCommon

+1

@JayIsTooCommon आप बस उन्हें अपने परीक्षण में सेट करें, उदा। $ _SERVER ["foo"] = 42 अगर मुझे सही याद आती है। वास्तविक परीक्षण विधि में या सेटअप() में या setupbeforeclass() में ऐसा कर सकते हैं (यदि वह आज भी मौजूद है) – Gordon

+0

आह ठीक है, तो मुझे कुछ और गलत करना होगा। धन्यवाद :) – JayIsTooCommon

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