Laravel: Test Console


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Cùng với test HTTP thì Laravel cung cấp một API đơn giản cho việc test console applications yêu cầu input từ người dùng.

Mong muốn Input / Output

Laravel cho phép ta dễ dàng "giả định" input người dùng với các lệnh console sử dụng phương thức expectsQuestion. Cùng với đó thì ta có thể chỉ định exit code và text mà ta mong muốn được output bởi console command sử dụng các phương thức assertExitCode và expectsOutput. Ví dụ ta xét console command sau đây:

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.'.');
});

Ta có thể test lệnh này bằng đoạn test sau đây sử dụng các phương thức expectsQuestionexpectsOutput, và assertExitCode:

/**
 * Test a console command.
 *
 * @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);
}
» Tiếp: Sanctum
« Trước: Test HTTP
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!