Diferencia entre revisiones de «Test de javascript con QUnit»

De Dos Ideas.
Saltar a: navegación, buscar
(Asserts)
(Asserts)
Línea 114: Línea 114:
  
 
'''ok''':
 
'''ok''':
Es para validar resultado booleanos (es el equivalente a assertTrue de JUnit). Tiene la siguiente estructura: ok(estado, mensaje) donde estado es una expresión booleana y mensaje es la salida del assert.
+
Es para validar resultado booleanos (es el equivalente a assertTrue de JUnit).  
 +
 
 +
La sintaxis es la siguiente: ok(estado, mensaje).
 +
 
 +
estado: es una expresión booleana a evaluar.
 +
 
 +
mensaje: es el mensaje a mostrar cuando finaliza el assert.
 +
 
 
Ejemplo:
 
Ejemplo:
 
<code xml>
 
<code xml>
 
ok(validarImporte("1112"),'El importe es 1112');  
 
ok(validarImporte("1112"),'El importe es 1112');  
 +
</code>
 +
 +
'''equal''':
 +
Valida que el resultado obtenido es igual al esperado (es similiar al assertEqual de JUnit).
 +
 +
La sintaxis es la siguiente: equal(actual, esperado, mensaje)
 +
 +
actual: es el objeto a evaluar.
 +
 +
esperado: es el resultado esperado.
 +
 +
mensaje: es el mensaje a mostrar cuando finaliza el assert.
 +
 +
Ejemplo:
 +
<code xml>
 +
equal(extraerSubCadena("dosIdeas",3,5),'Ideas');
 
</code>
 
</code>
  
 
== Ver también  ==
 
== Ver también  ==
 
[http://docs.jquery.com/Qunit Página de QUnit]
 
[http://docs.jquery.com/Qunit Página de QUnit]

Revisión del 12:34 16 ago 2011

¿Qué es QUnit?

QUnit es una potente herramienta para testear javascript.

Escribir test unitarios con QUnit

Lo primero que se debe hacer es configurar el ambiente de test.

Para utilizar QUnit se deben usar los siguientes archivos: qunit.js y qunit.css. El qunit.js es un script con la libreria, y el qunit.css es una hoja de estilo y es opcional.

<link rel="stylesheet" type="text/css" href="http://github.com/jquery/QUnit/raw/master/QUnit/QUnit.css" media="all" /> <script type="text/javascript" src="http://github.com/jquery/QUnit/raw/master/QUnit/QUnit.js"></script>

Además de estos archivos, nuestras aplicaciones tienen que contar con una serie de etiquetas HTML donde se mostrarán los resultados de nuestros tests:

QUnit Test Suite

    A continuación se deja un ejemplo completo de un html donde se incluyen los archivos y las etiquetas html que necesita QUnit.

    <!DOCTYPE html> <html> <head> <title>Dos Ideas - QUnit</title> <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" href="http://code.jquery.com/qunit/git/qunit.css" type="text/css" media="screen" /> <script type="text/javascript" src="http://code.jquery.com/qunit/git/qunit.js"></script> <script type="text/javascript" src="dosIdeas.js"></script>

    <script type="text/javascript" src="dosIdeasTest.js"></script>

    </head> <body>

    QUnit example

      test markup, will be hidden

      </body> </html>

      El codigo que se va a testear debe estar en dosIdeas.js y los test en dosIdeasTest.js. Para correr los test simplemente se debe abrir el html en el browser.

      El archivo dosIdeasTest.js:

      $(document).ready(function(){

      module("dosIdeasTest");

      test('probando validarImporte()', function() { ok(validarImporte("1112"),'El importe es 1112'); ok(!validarImporte("11A12"),'El importe es 11A12'); ok(!validarImporte("A1112"),'El importe es A1112'); ok(!validarImporte("1112A"),'El importe es 1112A'); })

      test('probando extraerSubCadena()', function() { equal(extraerSubCadena("dosIdeas",3,5),'Ideas'); equal(extraerSubCadena("dosIdeas",3,5),'deas'); })

      });


      El archivo dosIdeas.js:

      function validarImporte(importe) {

             if (importe.length == 0) {
                 return false;
             } else {
                 if (!/^[1-9][0-9]*(?:\.)?[0-9]?[0-9]?$/.test(importe.replace(',','.'))) {
                     return false;
                 }
             }
             return true;
         }
      

      function extraerSubCadena(cadena, posicionInicial, longitud) { return cadena.substr(posicionInicial, longitud); }

      El resultado de los test quedan de la siguiente manera:

      DosIdeasQUnitResultado.jpg

      Asserts

      Qunit nos provee de una serie de asserts para nuestros test. En el ejemplo anterior se hace mención de ok y equal. A continuación vamos a dar más detalle de los mismos y de nuevos.

      ok: Es para validar resultado booleanos (es el equivalente a assertTrue de JUnit).

      La sintaxis es la siguiente: ok(estado, mensaje).

      estado: es una expresión booleana a evaluar.

      mensaje: es el mensaje a mostrar cuando finaliza el assert.

      Ejemplo: ok(validarImporte("1112"),'El importe es 1112');

      equal: Valida que el resultado obtenido es igual al esperado (es similiar al assertEqual de JUnit).

      La sintaxis es la siguiente: equal(actual, esperado, mensaje)

      actual: es el objeto a evaluar.

      esperado: es el resultado esperado.

      mensaje: es el mensaje a mostrar cuando finaliza el assert.

      Ejemplo: equal(extraerSubCadena("dosIdeas",3,5),'Ideas');

      Ver también

      Página de QUnit