2016-08-25 13 views
5

Mam więc zestaw testowy, który odwiedza stronę rejestracji i przesyła formularz. Następnie test weryfikuje konto za pomocą tokena.Laravel 5.3 - Unikaj wysyłania powiadomień o zwolnieniu w teście phpunit

Po zweryfikowaniu konta powiadomienie jest wysyłane za pośrednictwem SlackMessage.

Zastanawiam się, w jaki sposób mogę przechwycić to i zatrzymać wysyłanie wiadomości o braku wysłania - tylko podczas uruchamiania testu, ale uzyskać potwierdzenie, że powiadomienie rzeczywiście zostało wywołane.

+2

nie można kpić zgłoszenie podając klasę? –

+0

Chyba mógłbym. Nigdy nie wiedziałem, że istnieje nawet kpina. Cóż, mam mnóstwo nowych rzeczy do zrobienia :) Jestem całkiem nowy w testowaniu. Zakończono wykonywanie Powiadomienia :: shouldReceive ("wyślij") -> raz(); który wydaje się działać całkiem dobrze. Dzięki :) – Pistachio

Odpowiedz

7

Znalazłem nieudokumentowaną metodę oczekujeNotifications() w funkcji Laravel 5.3 MockApplicationServices. Działa prawie tak samo, jak documented event mocking.

użycia:

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

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

Istnieje również $ this-> withoutNotifications(), aby pominąć wszelkie napotkane powiadomień.

+0

Jest to dosłownie jedyne odniesienie do 'expectsNotification', które udało mi się znaleźć. Dziękuję bardzo! – Meriw

1

Skończyłem właśnie robiąc Notification::shouldReceive('send')->once(); dla każdego, kto się zastanawia. Który, jak sądzę, jest poprawny sposób na kpiny z Fasady powiadomień :)

2

Jeśli trzeba pominąć wysyłanie wszystkich powiadomień, umieścić następującą linię na początku swojej metody badawczej:

$this->withoutNotifications();

Powiązane problemy