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)