मेरे पास एक साधारण उपयोग केस है।PHPUnit Mock उम्मीदों को बाद में बदलें
$this->myservice
->expects($this->any())
->method('checkUniqueness')
->will($this->returnValue(true));
लेकिन तब में कुछ परीक्षण, मुझे कोई दूसरी मान देने के लिए करना चाहते हैं::
$this->myservice
->expects($this->exactly(1))
->method('checkUniqueness')
->will($this->returnValue(false));
मुझे लगता है मैं एक सेटअप विधि है जो मेरी नकली वस्तु एक डिफ़ॉल्ट मान वापस जाने के लिए कारण होगा करना चाहते हैं अतीत में सी ++ के लिए GoogleMock का उपयोग किया है और इसमें "वापसी ByDefault" या इसे संभालने के लिए कुछ था। मैं यह नहीं समझ सका कि PHPUnit में यह संभव है (कोई एपीआई दस्तावेज नहीं है और मुझे जो चाहिए वह ढूंढने के लिए कोड को पढ़ना मुश्किल है)।
अब मैं $this->myservice
को नए मॉक में नहीं बदल सकता, क्योंकि सेटअप में, मैं इसे अन्य चीजों में पास करता हूं जिन्हें मजाक या परीक्षण करने की आवश्यकता होती है।
मेरा एकमात्र अन्य समाधान यह है कि मैं सेटअप का लाभ खो देता हूं और इसके बजाय प्रत्येक परीक्षण के लिए मेरे सभी मोक्स बनाना पड़ता है।
इस मुद्दे को हल कैसे कर सकता है? 'SetUp()' विधि को वैसे भी –
@MassimilianoArione हां कहा जाएगा, लेकिन आप अपना '$ यह-> myservice' फिर से बना सकते हैं और वापसी मूल्य बदल सकते हैं – rndstr