【发布时间】:2019-06-06 16:31:35
【问题描述】:
如果我在测试类中使用 \mail,Laravel 5.7 会告诉我 mailer 类不存在。
这是我的测试函数:
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
\Mail::raw('Hello world', function($message){
$message->to('foo@bar.com');
$message->from('bar@foo.com');
});
}
当我在终端输入phpunit 时会发生这种情况:
1) Tests\Feature\ExampleTest::testBasicTest ReflectionException: Class 邮件不存在
/home/www/testmachine/vendor/laravel/framework/src/Illuminate/Container/Container.php:779 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Container/Container.php:658 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Container/Container.php:609 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:735 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Container/Container.php:1222 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:175 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:144 /home/www/testmachine/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:231 /home/www/testmachine/tests/Feature/ExampleTest.php:14
但是,当我在应用程序的其他地方使用邮件时,它可以工作,例如在Route.php:
Route::get('/test', function(){
\Mail::raw('Hello world', function($message){
$message->to('foo@bar.com');
$message->from('bar@foo.com');
});
dd('hi');
});
我检查了Illuminate\Mail\MailServiceProvider::class 是否在app.php 中,正如here 所建议的那样,我还执行了composer update 和composer dump-autoload,正如here 所建议的那样。
知道为什么会抛出这个错误吗?
【问题讨论】:
-
你是真的想从你的测试中发送邮件还是你想伪造发送邮件?