1
私は2つの状況に直面しています。ユニットテストLaravel 5のメールキュー
第1回 - Laravelのメールキュークラスをどのようにユニットテストしますか?
私がテストしたいコードはこれです:
// Create new customer record
$account = $this->create(['account_id' => $account->id]);
// Get email address to send welcome email.
$email = $data['email'];
// Email Subject
$subject = $this->word('emails.welcome.subject');
$this->mailQueue->queue('emails.welcome',
['some_data' => 'data'],
function ($message) use ($email, $subject) {
$message->to($email)->subject($subject);
}, true);
return $account;
私はIlluminate\Contracts\Mail\MailQueue
クラスを使用するときに私のために動作しますshouldReceive
方法がどこにあるか知っていただきたいと思います。
今私は、このために、このユニットテストを持っている:
/**
* @tests
*/
public function it_should_sign_up_a_new_user() {
// MailQueue::shouldReceive() does not exist.
list($account, $email) = $this->getAccountData();
$request = array_merge($account, $email);
$account['password'] = $this->hash($account['password']);
$this->post('/signup', $request, $this->header)
->assertResponseOk()
->seeInDatabase('account', $account)
->seeInDatabase('email', $email);
}
第二 - ユニットテストはphp artisan queue:listen
またはqueue:work
を必要としないのはなぜ?
ユニットテストを実行するたびに、queue:listen
が実行されていなくても電子メールが送信されます。私はこの素晴らしい魔法がどのように起こるかを理解したいと思います。
を[モックを使用した単体テストLaravel 5メール]の可能性のある重複します(http:すなわち
メールファサードは、あなたが行うことができる必要がありますので、それに組み込まれて
shouldReceive
を持っています://stackoverflow.com/questions/31120567/unittesting-laravel-5-mail-using-mock) –