2017-01-24 3 views
0

vor kurzem sehe ich einige probleme in meinen projekten, ein gefunden, dass es eine ausnahme gibt, die ich vergesse, sie zu fangen! dies ist mein Code:mock catch exception mit phpUnit

try { 
    $this->user = $invoiceEvent->user; 

    $this->invoice = $invoiceEvent->invoice; 

    if ($this->user->email) { 
     $this->sendEmail(); 
    } 
}catch (Swift_RfcComplianceException $e) { 

} 

durch die Verwendung dieses try/catch mein Problem gelöst ist, das ist mein Test ist, und grün ist !, wer ich behaupten kann die Ausnahme Haken ist?

/** 
* @test 
*/ 
public function it_should_Not_provide_exception_when_mailFromAddress_is_not_set() 
{ 

    $invoice = $this->makeInvoice(); 
    $user = $this->makeUser(); 
    $mail = app('Illuminate\Contracts\Mail\Mailer'); 

    (new SendInvoiceToUser($mail))->handle(new InvoiceCreated($invoice, $user)); 

} 

Antwort

0

Schließlich behaupte ich die Ausnahme Fang meine Methode in dieser Situation null zurück, die genau das ist, was ich außer.

/** 
* @test 
*/ 
public function it_should_Not_provide_exception_when_mailFromAddress_is_not_set() 
{ 

    $invoice = $this->makeInvoice(); 
    $user = $this->makeUser(); 
    $mail = app('Illuminate\Contracts\Mail\Mailer'); 


    $mocked = $this->getMockBuilder(SendInvoiceToUser::class) 
     ->setConstructorArgs([$mail]) 
     ->setMethods(null) 
     ->getMock(); 

    $this->assertNull($mocked->handle(new InvoiceCreated($invoice, $user))); 
} 
  • pass null -> setMethods (null) das Objekt mocke den eigentlichen Code innerhalb des Verfahrens enthalten laufen, wenn sie aufgerufen,