यह प्रश्न कुछ समय के साथ उत्तर नहीं दिया गया है, लेकिन मैं इसी समस्या में भाग गया। यह संभव नहीं प्रतीत होता है; हालांकि, वहाँ कम से कम एक गंदा काम के आसपास:
अपने परीक्षण फ़ाइल में
<?php
class SomeClass {
const FOOBAR = 'foobar';
}
class SomeTest extends PHPUnit_Framework_TestCase {
public function setUp() {
$mock = $this->getMock('SomeClass');
}
}
// tests
?>
उसके बाद, आप मज़ाक उड़ाया कार्यक्षमता के लिए अपने मज़ाक उड़ाया ऑब्जेक्ट का उपयोग करें, और आप वर्ग निरंतर उसी तरह का उपयोग आप मूल रूप से होता है । उदाहरण के लिए:
// Call a method on mocked object
// (would need to add this method to your mock, of course)
$mock->doSomething();
// Use the constant
$fooBar = SomeClass::FOOBAR;
यह गंदा है, तो मुझे यकीन है कि चीजों को बहुत आप autoloading वास्तविक SomeClass
वर्ग लोड करने के लिए कोशिश करता है कि किसी प्रकार का उपयोग कर रहे हैं में गड़बड़ हो सकता हूँ, लेकिन यह काम करेंगे "ठीक" यदि आप मूल SomeClass
लोड नहीं कर रहे हैं।
मुझे निश्चित रूप से अन्य समाधान सुनने में दिलचस्पी है और साथ ही यह वास्तव में कितना गंदा है पर कुछ प्रतिक्रिया प्राप्त करने में दिलचस्पी है।
क्या प्रतिबिंब वर्ग आप जो चाहते हैं उसे पूरा करेंगे? http://php.net/manual/en/book.reflection.php –