Laravel 5.8 ??? ?? ???
/ 命令行測試
命令行測試
命令行測試
控制臺測試
簡介
除了簡化 HTTP 測試之外, Laravel 為測試需要用戶輸入的控制臺應(yīng)用提供了簡單的 API 。
期望輸入 / 輸出
Laravel 使用 expectsQuestion
方法為控制臺命令「模擬」用戶輸入。此外,還可以使用 assertExitCode
和 expectsOutput
方法指定控制臺命令退出碼和期望輸出文本。舉例如下:
Artisan::command('question', function () { $name = $this->ask('What is your name?'); $language = $this->choice('Which language do you program in?', [ 'PHP', 'Ruby', 'Python', ]); $this->line('Your name is '.$name.' and you program in '.$language.'.'); });
您可以參考下面的示例代碼來測試命令,其中使用了 expectsQuestion
,expectsOutput
,和 assertExitCode
方法:
/** * 測試控制臺命令。 * * @return void */ public function test_console_command(){ $this->artisan('question') ->expectsQuestion('What is your name?', 'Taylor Otwell') ->expectsQuestion('Which language do you program in?', 'PHP') ->expectsOutput('Your name is Taylor Otwell and you program in PHP.') ->assertExitCode(0); }