在测试中调用Assert Laravel命令

在测试中调用Assert Laravel命令,laravel,testing,laravel-5,mocking,Laravel,Testing,Laravel 5,Mocking,我从Laravel命令调用Laravel命令。它可以工作,但我想测试是否调用了子命令A和/或B 以下是简化版本: final class HandleActions extends Command { public function handle() { foreach ($items as $item) { if ($item->price * 2.24 > 100) { $this->c

我从Laravel命令调用Laravel命令。它可以工作,但我想测试是否调用了子命令A和/或B

以下是简化版本:

final class HandleActions extends Command
{
    public function handle()
    {
        foreach ($items as $item) {
            if ($item->price * 2.24 > 100) {
                $this->call('order:reprocess'); // command A
            }

            if (!$item->stock) {
                $this->call('order:cleanup'); // command B
            }
        }
    }
}
我像这样测试这个命令(简化),所以我知道主命令被成功激活

    $this->artisan('command')->assertExitCode(0);
    // How do I assert command A is fired?
    // How do I assert command B is fired?


我想断言子命令1被激发和/或子命令2被激发。但是如何做到这一点呢?

您可以从子命令触发一个事件,然后在测试中通过
event::assertDispatched