PHPUNIT – Ejecutando nuestra primera prueba

Tenemos que empezar con algunos métodos de prueba, así que aquí tenemos la clase con la que vamos a trabajar en los siguientes ejemplos. Es básica, sólo para mantener las cosas simples. Esto es lo que va en la librería examples.php:

class examples{
	
	public function verifica_array(){
		$array_target = array('azul','verde','rojo');
		return in_array('azul', $array_target);
	}
	
}

Así, por ejemplo, si vamos a probar esta funcionalidad para verificar que el valor de retorno sea true, nuestra clase de prueba seria examplesTest.php y quedaría como se muestra a continuación.

include_once 'examples.php';

class examplesTest extends PHPUnit_Framework_TestCase{
	
	private $example_instance = null;
	
	public function __construct(){
		$this->example_instance = new examples;
	}
	
	public function testVerifica_array(){
		$this->assertTrue($this->example_instance->verifica_array());
	}
	
}

Se podrán percatar de que la clase extiende a TestCase de PHPUnit, por lo que una gran cantidad de funcionalidades vienen con ella.

El objetivo de la prueba es el método testVerifica_array(). Este método hace una llamada a verifica_array() de la clase examples y procede a verificar el valor de retorno.

¿Ves que assertTrue está ahí? Esa es una de los métodos de ayuda de PHPUnitAssertTrue es la más simple aserción, lo único que hace es comprobar que una expresión boleana sea true.

Otros métodos de ayuda pueden poner a prueba las propiedades del objeto, la existencia de archivos, la presencia de una clave dada en una matriz o una coincidencia en una expresión regular, sólo por mencionar algunas.

En este caso, queremos estar seguros de que el resultado de testVerifica_array() no sea false, esto quiere decir que el array debe contener el valor deseado.

Ejecutar las pruebas es tan sencillo como llamar al ejecutable PHPUnit y señalar las pruebas. Aquí tenemos un ejemplo de como llamar a nuestra prueba:

phpunit /path/to/tests/examplesTest.php

Sencillo, ¿cierto? La salida es muy simple, por cada uno de los métodos de prueba PHPUnit los evalúa y recoge algunas estadísticas como el número de pruebas y aserciones.

He aquí una vista de la salida de nuestro ejemplo:

PHPUnit 3.4 by Sebastian Bergmann
.
Time: 1 second
Tests: 1, Assertions: 1, Failures 0

Para cada prueba que ejecutamos, veremos un punto (.) si se tiene éxito (como arriba), una “F” si ocurrió un error, y una “I” si la prueba esta marcada como incompleta o una “S” si se ha marcado como Omitida (Skipped).

Para consultar todas las demás funcionalidades que ofrece PHPUnit se puede consultar su manual oficial dando clic aqui

Consejos

Es una buena practica el no verificar mas de un elemento o ascersion por función ya que si ocurre un error no se sabrá con certeza que es lo que fallo creando así confusión y complicando hallar el error.