从版本5.7开始,Laravel建议在测试期间使用array
驱动程序:
不幸的是,the documentation对这个驱动程序一无所知,根据the source code,驱动程序将所有消息存储在内存中,而不是实际发送它们,如何在单元测试期间获得存储的“已发送”消息(以便检查它们)?
从版本5.7开始,Laravel建议在测试期间使用array
驱动程序:
不幸的是,the documentation对这个驱动程序一无所知,根据the source code,驱动程序将所有消息存储在内存中,而不是实际发送它们,如何在单元测试期间获得存储的“已发送”消息(以便检查它们)?
4条答案
按热度按时间j9per5c41#
编辑:使用Laravel 9+,用途:
确保在
.env
或phpunit.xml
文件中将邮件驱动程序设置为array
。使用Laravel 7+或如果您收到错误
Target class [swift.transport] does not exist
,请使用此命令获取使用阵列驱动程序发送的电子邮件列表:ddrv8njm2#
调用
app()->make('swift.transport')->driver()->messages()
。返回值是Swift_Mime_SimpleMessage
对象的集合。完整PHPUnit测试的示例:
mxg2im7a3#
我根据菲尼斯的回答自定义的Assert。
pw136qt24#
下面是Laravel 9、10的完整邮件测试示例。(使用数组驱动程序)