模拟用于测试laravel artisan命令的文件系统

时间:2018-03-13 21:01:07

标签: php laravel testing

有点难过如何测试这个。我正在构建一个命令行工具,允许在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');
    }
}

0 个答案:

没有答案