Mostrando entradas con la etiqueta UnitTest. Mostrar todas las entradas
Mostrando entradas con la etiqueta UnitTest. Mostrar todas las entradas

2011-10-28

Consola CakePHP Testing y otros comandos olvidados

Estupenda presentación de como utilizar algunos comando de la consola de CakePHP y hacer Testing de nuestros proyecto..
Consola Cake Php, Uso Y Testing



Acá también dejo mas información de como ajusta todo en CakePHP 2.0 todos los detalles de la documentación oficial.

2009-10-18

Unit Tests en PHP con SimpleTest

Hacer pruebas automatizadas de tu código siempre es una buena costumbre, en especial cuando te llega el tiempo de tener que refactorizar.

Para este ejemplo vamos a hacer una clase que calcula las áreas de triángulos, rectángulos y cuadrados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Area
{
function triangle($base, $height) {
return ($base * $height) / 2;
}

function rectangle($breadth, $height) {
return $breadth * $height;
}

function square($side) {
return $side * $side;
}
}

Y vamos a utilizar la herramienta SimpleTest para probar que nuestras funciones están trabajando bien. Para empezar a usarlo solo tienes que bajarlo y colocar la carpeta simpletest dentro de tu proyecto o algún directorio global de PHP.

Una vez instalado podemos comenzar a escribir nuestros casos de prueba.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require_once 'simpletest/autorun.php';
require_once 'area.php';

class AreaTestCase extends UnitTestCase
{
var $area;

function setUp() {
$this->area = new Area();
}

function testTriangle()
{
$result = $this->area->triangle(6, 10);
$this->assertEqual(30, $result);
}

function testRectangle()
{
$result = $this->area->rectangle(2, 5);
$this->assertEqual(10, $result);
}

function testSquare()
{
$result = $this->area->square(4);
$this->assertTrue(is_numeric($result));
}
}

El incluir autorun.php nos da la habilidad de poder extender la clase UnitTestCase, permitiéndonos ejecutar las aserciones. Además el autorun.php se encarga de correr las pruebas sin necesidad de que tu tengas que instanciar nada y también es suficientemente inteligente para darte si cuenta si estas en la consola o directamente en el navegador.

La funcion setUp se ejecuta automáticamente antes de correr cualquier prueba. Aquí como todas nuestras pruebas hacen uso de la clase Area, entonces aprovechamos para hacer la instancia una sola vez.

Finalmente SimpleTest corre todas las pruebas que note comienzan con el nombre test y nosotros tenemos 3 de ellas:

  • testTriangle: Prueba que el resultado de la operación sea igual a 30.
  • testRectangle: Prueba que el resultado de la operación sea igual a 10.
  • testSquare: Prueba que el resultado de la operación sea un número.

Cualquier otro resultado nos arrojaría errores. Estas pruebas ejecutadas en el navegador se verían así, pero también puedes ejecutarlas en consola sin ningún problema.

Oh si, la confirmación del código perfecto

SimpleTest tiene muchas opciones más como el agrupar casos de prueba, escribir tus propias aserciones, mockups (simulaciones de escenarios) y pruebas web (aunque limitado). Así que no te dejes de llevar por el nombre no es simple, solo es fácil de usar.

FUENTE: pablasso.com

2009-01-26

FireUnit, plugin Firefox para realizar pruebas unitarias de JavaScript

Firebug en algún momento comenzó por ser una extensión más para Mozilla Firefox pero debido a su gran eficiencia para debuggear y editar HTML, CSS y Javascript “en tiempo real” y monitorear el tráfico de cualquier página web paso a integrarse al navegador.

Actualmente existen algunas extensiones para Firefox que trabajan conjuntamente con Firebug como es el caso de FireUnit un plugin que nos da la posibilidad de realizar pruebas unitarias de Javascript y mostrará los logs en una pestaña de Firebug.
Algunas de las pruebas que se pueden realizar con este plugin son:

1. // Simular eventos del navegador
2. var input = document.getElementsByTagName(”input”)[0];
3. fireunit.mouseDown( input );
4. fireunit.click( input );
5. fireunit.focus( input );
6. fireunit.key( input, “a” );

Haz clic aquí para aprender más sobre FireUnit>

Fuente: Sentido Web