Test de javascript con QUnit

De Dos Ideas.
Saltar a: navegación, buscar

QUnit es una potente herramienta para testear javascript.

Para utilizar QUnit, se tiene que incluir a los archivos qunit.js, qunit.css y un HTML para mostrar los resultados de las pruebas.

EjemploQUnit.jpg

Como escribir test unitarios con QUnit:

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

<!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) {

           esImporteValido = true;
    
           if (importe.length == 0) {
               mensajeError = 'Ingresá el importe a pagar.';
               esImporteValido = false;
           } else {
               if (!/^[1-9][0-9]*(?:\.)?[0-9]?[0-9]?$/.test(importe.replace(',','.'))) {
                   mensajeError = "El importe a pagar debe ser numérico, mayor a cero con hasta 2 decimales.";
                   esImporteValido = false;
               }
           }
           return esImporteValido;
       }
    

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