FuelPHP - Teste de Unidade

O teste de unidade é um processo essencial no desenvolvimento de grandes projetos. Unit testsajudam a automatizar o teste dos componentes do aplicativo em todos os estágios de desenvolvimento. Ele alerta quando o componente do aplicativo não está funcionando de acordo com a especificação de negócios do projeto. O teste de unidade pode ser feito manualmente, mas geralmente é automatizado.

PHPUnit

A estrutura FuelPHP se integra à estrutura de teste PHPUnit. Para escrever um teste de unidade para a estrutura FuelPHP, precisamos configurar o PHPUnit. Se o PHPUnit não estiver instalado, baixe e instale-o. Podemos confirmar a disponibilidade do PHPUnit em nosso sistema usando o seguinte comando.

phpunit --version

Se o PHPUnit estiver disponível, você verá o resultado semelhante ao seguinte.

PHPUnit 5.1.3 by Sebastian Bergmann and contributors.

Criação de testes de unidade

O local padrão fornecido pelo FuelPHP para escrever o teste de unidade é fuel / app / tests. Podemos escrever o teste de unidade para controlador, modelo, visualização e apresentadores em pastas separadas. Vamos escrever um teste de unidade para validar o objeto Model_Employee.

  • Step 1 - Crie uma pasta, modelo sob a pasta de combustível / app / testes.

  • Step 2 - Crie um arquivo, employee.php em fuel / app / tests / model / folder.

  • Step 3 - Crie uma nova classe de teste, Test_Model_Employee estendendo a classe TestCase fornecida pelo PHPUnit.

  • Step 4 - Escreva um método, testInstanceOfEmployee () para ativar a criação do objeto funcionário usando o método assertInstanceOf () fornecido pela classe TestCase do PHPUnit.

A seguir está o código completo -

<?php  
   class Test_Model_Employee extends TestCase { 
      public function testInstanceOfEmployee() { 
         $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); 
      } 
   }

Criando um Grupo de Teste

FuelPHP fornece uma opção para criar um grupo de casos de teste. Criar um grupo é tão simples quanto adicionar o atributo docblock, @group. Vamos incluir nosso caso de teste dentro do grupo MyTest.

<?php   
   /** 
      * @group MyTest 
   */ 
   class Test_Model_Employee extends TestCase { 
      public function testInstanceOfEmployee() { 
         $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); 
      } 
   }

Teste de corrida

Para executar todos os testes no diretório, use o seguinte comando.

$ php oil test

Para executar um grupo específico de testes, use o seguinte comando.

$ php oil test --group = MyTest

Depois de executar o comando, você receberá a seguinte resposta.

Tests Running...This may take a few moments.
PHPUnit 5.1.3 by Sebastian Bergmann and contributors.
                                        1 / 1 (100%).
Time: 123 ms, Memory: 8.00Mb
OK (1 test, 1 assertion)