有点难过如何测试这个。我正在构建一个命令行工具,允许在laravel应用程序之外使用artisan make命令。这个想法是,这将允许工匠使命令在开发系统的任何地方用于包开发。我有一个工作原型,所以我想开始添加测试。但是,我对如何在模拟文件系统中执行artisan命令感到有些困惑(使用mikey179 / vfsStream)。这是我目前的代码:
namespace Tests\Feature;
use Tests\TestCase;
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamWrapper;
use Illuminate\Support\Facades\Artisan;
class ChannelCommandTest extends TestCase
{
protected function setUp(): void {
parent::setUp();
$structure = [
'src' => [],
'tests' => []
];
$this->root = vfsStream::setup('newPackage', null, $structure);
vfsStreamWrapper::register();
}
public function testChannelCommand(): void {
Artisan::call('make:channel', ['name' => 'newChannel']);
$this->assertFileExists('src/Channels/Broadcasting/newChannel.php');
}
}