2016-08-25 19 views
5

में ढीली अधिसूचना भेजने से बचें तो मुझे एक परीक्षण सेट मिला है जो साइन अप पेज पर जाता है और फॉर्म सबमिट करता है। फिर परीक्षण टोकन द्वारा खाते की पुष्टि करता है।लैरवेल 5.3 - phpunit test

खाता खोलने के बाद, SlackMessage के माध्यम से एक अधिसूचना भेजी जाती है।

मैं क्या सोच रहा था कि मैं इसे कैसे रोक सकता हूं, और वास्तव में भेजने से धीमे संदेश को रोक सकता हूं - केवल परीक्षण चलाते समय, लेकिन कुछ प्रकार की पुष्टि प्राप्त करें कि वास्तव में अधिसूचना को बुलाया गया था।

+2

आप अधिसूचना वर्ग भेजने नकली नहीं कर सकते? –

+0

मुझे लगता है कि मैं कर सकता था। कभी नहीं पता था कि मजाकिया भी अस्तित्व में था। खैर मेरे पास करने के लिए नई चीजों का एक गुच्छा है :) मैं परीक्षण करने के लिए काफी नया हूँ। अधिसूचना करने के साथ समाप्त हुआ :: mustReceive ('send') -> एक बार(); जो काफी अच्छी तरह से काम करता प्रतीत होता है। धन्यवाद :) – Pistachio

उत्तर

7

मुझे लारवेल 5.3 मॉकप्लिकेशंस सर्विसेज विशेषता में एक अनियंत्रित विधि अपेक्षित() को मिला। यह documented event mocking के समान ही काम करता है।

प्रयोग है:

$this->expectsNotification($notifiable, $notification); 

// eg. 
$this->expectsNotification($user, UpperLimitExceeded::class); 

भी $ this-> withoutNotifications() छोड़ के लिए किसी भी सामना करना पड़ा सूचनाएं नहीं है।

+0

यह सचमुच 'उम्मीदों' के लिए एकमात्र संदर्भ है जिसे मैं ढूंढने में सक्षम था। आपको बहुत - बहुत धन्यवाद! – Meriw

1

मैं सोच रहा हूं कि किसी भी व्यक्ति के लिए Notification::shouldReceive('send')->once(); कर रहा हूं। जो मुझे लगता है कि अधिसूचना मुखौटा का नकल करने का सही तरीका है :)

2

आप सभी सूचनाएं भेजना छोड़ देते हैं की जरूरत है, अपने परीक्षण विधि की शुरुआत में निम्न पंक्ति डाल:

$this->withoutNotifications();

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