Tests en ligne de commande


Introduction

En plus de simplifier les tests HTTP, Laravel fournit une API simple pour tester les applications de console qui nécessitent la saisie de l'utilisateur.
  • Entrée/sortie attendue
Laravel utilise la méthode expectsQuestion pour "simuler" les entrées utilisateur pour les commandes de la console. De plus, vous pouvez spécifier le code de sortie de la commande de console et le texte de sortie attendu à l'aide des méthodes assertExitCode et expectsOutput. Un exemple est le suivant :
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.'.');
   });
Vous pouvez vous référer à l'exemple de code suivant pour tester la commande, qui utilise expectsQuestion, expectsOutput et assertExitCode méthodes :

/**
 * 测试控制台命令。
 *
 * @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);
     }

Cet article a été publié pour la première fois sur le site

LearnKu.com

.