【发布时间】:2022-11-29 21:04:49
【问题描述】:
这真是奇怪。我有一个 laravel 应用程序,我在其中使用模块库
https://github.com/nWidart/laravel-modules
我不知道它是否与问题有关,但只是想指出来。
基本上,我正在编写 phpunit 测试。第一个测试是调用端点。在这种情况下,控制器将调用一个存储库类(基本上是文件夹“Repositories”中的一个 php 类,没有比这更奇怪的了),它又调用
Mail::queue(new MyFirstMail($arg));
好吧,这行得通。我还可以在测试中进行检查以验证邮件是否已排队:
Mail::assertQueued(MyFirstMail::class, 1);
相反,第二个测试是以这种方式调用工匠命令:
$this->artisan('a_command_job');
这将基本上在位于“Modules/Console/Commands/MyCommand.php”的类中运行方法“handle”
从该句柄方法内部,我将调用它:
Mail::queue(new MySecondMail($arg));
这个测试失败了。错误是
View [emails.second_email] not found
MySecondMail.php 是一个扩展“BaseMail”的类。这与 MyFirstMail.php 相同。 它们看起来或多或少完全一样。当然,它们包括两种不同的观点。 MyFirstMail 在包含视图方面没有问题。而 MySecondMail 找不到视图。 我还尝试为 MySecondMail 传递相同的视图名称。但我仍然遇到同样的错误。
我怀疑这与第一个是由对端点的调用触发的事实有关。而第二个是由工匠命令调用的。但我真的不明白如何让 MySecondMail 选择正确的视图路径。我也尝试过“base_path”。但它没有用,我不确定这是正确的方法。
【问题讨论】:
-
你能分享 MySecondMail 的代码吗?