2017-01-24 20 views
0

最近、私のプロジェクトにいくつかの問題がありますが、私はそれらをキャッチすることを忘れていくつかの例外があることが判明しました!これは私のコードです:PhpUnitを使用したモックキャッチ例外

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

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

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

} 

この私の問題が解決されたキャッチ/試みる使用することにより、これは私のテストであり、私は例外がキャッチされ主張することができます緑!ですか?

/** 
* @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)); 

} 

答えて

0

最後にこのように私は例外をキャッチするこの状況での私のメソッドを返すnullを返します。パスヌルによって

/** 
* @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))); 
} 
  • に - > setMethods(ヌル)mockeオブジェクトが呼び出されたときにメソッド内に含まれる実際のコードを実行し、
関連する問題