Laravel - Comandos artesanales

Laravel 5.7 viene con una nueva forma de tratar y probar nuevos comandos. Incluye una nueva característica para probar comandos artesanales y la demostración se menciona a continuación:

class ArtisanCommandTest extends TestCase{
   public function testBasicTest() {
      $this->artisan('nova:create', [
         'name' => 'My New Admin panel'
      ])
      ->expectsQuestion('Please enter your API key', 'apiKeySecret')
      ->expectsOutput('Authenticating...')
      ->expectsQuestion('Please select a version', 'v1.0')
      ->expectsOutput('Installing...')
      ->expectsQuestion('Do you want to compile the assets?', 'yes')
      ->expectsOutput('Compiling assets...')
      ->assertExitCode(0);
   }
}

Explicación del código

Aquí se crea una nueva clase llamada "ArtisanCommandTest" en el módulo de casos de prueba. Incluye una función básicatestBasicTest que incluye varias funcionalidades de aserciones.

El mando artesanal expectsQuestionincluye dos atributos. Uno con pregunta y otro con unapiKeySecret. Aquí, el artesano valida apiKeySecret y verifica la entrada enviada por el usuario.

El mismo escenario se aplica a la pregunta "Seleccione una versión" donde se espera que un usuario mencione una versión específica.