Olá galera, eu to querendo muito contribuir com o fórum, está muito dificil ter tempo para postar algo, mas vou aproveitar para falar um pouquinho sobre Teste unitário, para quem gosta de desenvolver e quer ser um profissional na área, é essencial.
Utilizamos os testes para certificarmos que as lógicas criadas estarão funcionando.
O mais interessante é que conforme desenvolvemos, sempre rodamos os testes passados para sabermos se nada criando antes foi quebrado.
Vamos lá a um exemplo simples...
Primeiramente vamos baixar e instalar o PHPUnit Framework via composer.
OBS: Estou utilizando linux como SO, caso você Windows, veja no link abaixo como instalar...
(pq não faço ideia hehe).
Projeto PHPUnit no github:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
bom continuando (no linux) é muito simples, abra o terminal linux e digite.
para testar se o phpunit já esta funcionando só rodar o comando:
caso aparecer : PHPUnit x.x.x é que funcionou...
Agora sim podemos criar uma classe php com um método para testar.
o metodo criado foi getNumerosPares, que simplesmente recebe um array de números e retorna outro array somente com os números pares.
vamos criar testes para esse método utilizando o PHPUnit.
* verificaremos se quando passarmos um array vazio irá retornar o proprio (empty)
* se passarmos um array com os seguintes valores (1, 2, 3, 4). Tem que retornar somente 2 e 4, pois são pares.
Acima está o codigo com os testes criados, somente para aquele simples método.
Parece loucura, pois a classe de teste é bem maior que o proprio metodo, pode pensar que é perda de tempo, porém é um incrivel beneficio, ainda mais quando se constrói grandes sistemas.
Bom galera foi isso, eu não tive muito tempo, por isso não postei prints com resultados.
caso fique muita dúvida comentem ai, quando tiver tempo eu crio um tutorial com prints ou até um video.
Abs,
Dr.Spy
Utilizamos os testes para certificarmos que as lógicas criadas estarão funcionando.
O mais interessante é que conforme desenvolvemos, sempre rodamos os testes passados para sabermos se nada criando antes foi quebrado.
Vamos lá a um exemplo simples...
Primeiramente vamos baixar e instalar o PHPUnit Framework via composer.
OBS: Estou utilizando linux como SO, caso você Windows, veja no link abaixo como instalar...
(pq não faço ideia hehe).
Projeto PHPUnit no github:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
bom continuando (no linux) é muito simples, abra o terminal linux e digite.
Código:
root@bt:# cd /usr/local/bin root@bt:# wget https://phar.phpunit.de/phpunit.phar root@bt:# chmod +x phpunit.phar root@bt:# mv phpunit.phar phpunit
Código:
root@bt:# phpunit --version
Agora sim podemos criar uma classe php com um método para testar.
Código PHP:
class Exemplo
{
public function getNumerosPares(array $numeros)
{
$pares = array();
foreach($numeros as $numero) {
if ($numero % 2 == 0) {
$pares[] = $numero;
}
}
return $pares;
}
}
vamos criar testes para esse método utilizando o PHPUnit.
* verificaremos se quando passarmos um array vazio irá retornar o proprio (empty)
* se passarmos um array com os seguintes valores (1, 2, 3, 4). Tem que retornar somente 2 e 4, pois são pares.
Código PHP:
<?php
require 'exemplo.class.php';
class ExemploTest extends PHPUnit_Framework_TestCase
{
protected $exemplo;
public function setUp()
{
$this->exemplo = new Exemplo();
}
public function testPassandoNenhumNumeroPar()
{
$numeros = array(1, 3, 5, 9);
$esperado = $this->exemplo->getNumerosPares($numeros);
$this->assertEmpty($esperado);
}
public function testPassandoNumeroParEImpar()
{
$numeros = array(1, 2, 3, 4);
$esperado = array(2, 4);
$this->assertEquals(
$esperado,
$this->exemplo->getNumerosPares(
$numeros
)
);
}
}
Parece loucura, pois a classe de teste é bem maior que o proprio metodo, pode pensar que é perda de tempo, porém é um incrivel beneficio, ainda mais quando se constrói grandes sistemas.
Bom galera foi isso, eu não tive muito tempo, por isso não postei prints com resultados.
caso fique muita dúvida comentem ai, quando tiver tempo eu crio um tutorial com prints ou até um video.
Abs,
Dr.Spy
Comment