如何在 Laravel 8 中伪造按需存储磁盘

How to fake on demand storage disk in Laravel 8

我的部分代码使用存储在数据库中的配置值创建了一个 on-demand storage disk。我正在为此代码编写功能测试,如何让我的测试在创建此磁盘时使用假存储而不是尝试实际创建真实连接?对于任何命名的存储磁盘,我只是在测试开始时执行 Storage::fake('mydisk'),但由于它是按需的,所以它没有名称。

最后成功破解:

$localDisk = Storage::fake('local');

Storage::shouldReceive('build')->with([
    'driver' => 'sftp',
    'host' => $endpoint->host,
    'username' => $endpoint->username,
    'password' => $endpoint->password,
    'port' => $endpoint->port ?? 22,
])->andReturn($localDisk);