有一个包可以用来测试邮件。但就目前而言,你必须要有一点创意才能让它工作,因为他们没有在 reqs 中指定 Laravel 5.4.*。因此,请进入您的 composer.json 文件并从此 repo 构建您自己的包,并使用 Laravel 5.4.* 的更新要求,如下所示:
"repositories": [
{
"type": "package",
"package": {
"name": "spinen/laravel-mail-assertions",
"version": "0.1.2",
"require": {
"php": ">=5.5.0",
"illuminate/support": "~5.1.10|5.2.*|5.3.*|5.4.*",
"swiftmailer/swiftmailer": "~5.1"
},
"require-dev": {
"mockery/mockery": "^0.9.1",
"phpunit/phpunit": "~4.0|~5.0",
"psy/psysh": "^0.5.1",
"satooshi/php-coveralls": "^0.6.1",
"symfony/var-dumper": "~2.7|~3.0"
},
"autoload": {
"psr-4": {
"Spinen\\MailAssertions\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Spinen\\MailAssertions\\": "tests"
}
},
"config": {
"preferred-install": "dist"
},
"dist": {
"url": "https://github.com/spinen/laravel-mail-assertions/archive/0.1.1.zip",
"type": "zip"
}
}
}
],
然后,在require-dev 下,添加您的自定义包:
"require-dev": {
"spinen/laravel-mail-assertions": "^0.1.2"
},
安装后,在您的 .env 文件中设置 MAIL_DRIVER=log 并将 Spinen\MailAssertions\MailTracking 特征拉入您的测试。此 trait 具有诸如 seeEmailContains、seeEmailSubjectContains 等方法来断言已发送的任何电子邮件中都存在文本。