मुझे गुणों के डिफ़ॉल्ट सेट के साथ एक नकली वस्तु बनाने की आवश्यकता है ताकि इसे तत्काल पर कोडबेस में एल्सवेयर का उपयोग किया जा सके।डिफ़ॉल्ट गुणों के साथ एक नकली वस्तु बनाना
$mock = $this->getMock('MyClass', array(), array(), 'MyClass_Mock');
$mock->prop = 'foobar';
$myclassMock = new get_class($mock);
var_dump($myclassMock->prop); // NULL
// How can I make this dump 'foobar' ?
मैं रूपरेखा है कि निर्धारित करता है स्थित है, और इन वर्गों को दर्शाता है तो मज़ाक उड़ाया वस्तु इंजेक्शन लगाने के परीक्षण का उद्देश्य विफल हो जाएगा का हिस्सा परीक्षण कर रहा हूँ।
मैं किसी भी तरीकों उपहास करने के लिए .. बस गतिशील इसलिए की तरह एक मज़ाक उड़ाया वर्ग बनाने की आवश्यकता नहीं है:
class MyClass_Mock extends MyClass {
public $prop = 'foobar';
}
संपादित करें: सरलीकृत उदाहरण
बस स्पष्टता के लिए, आप मौजूदा वर्ग का नकल करना चाहते हैं, और वास्तव में उस वर्ग के डिफ़ॉल्ट गुणों को अपने वर्ग को डिफ़ॉल्ट रूप से मजाक कर रहे हैं? – Leigh
@ लेघ राइट, कक्षा ढांचे में गहराई से तत्काल हो जाएगी। जिस कक्षा में मैं मजाक कर रहा हूं वह एक अमूर्त मॉडल है, और मैं इसे कुछ '$ फ़ील्ड' देना चाहता हूं, इसलिए यह वास्तविक मॉडल की तरह व्यवहार करेगा। मुझे पता है कि PHPUnit कोड को स्ट्रिंग में लिखकर और इसे विकसित करके मोजे बनाता है()। मुझे नहीं पता कि उस प्रक्रिया में संपत्ति घोषणाओं को कैसे शामिल किया जाए। –