Contenido

jDoctest, saca partido a la documentación de tus scripts

26 Oct

+ 1

jDoctest es una librería basada en el módulo de documentación de Python que permite aprovechar la documentación de nuestros scripts para realizar pruebas sobre nuestros scripts.

La idea es muy sencilla, tu comentas tu código, con un formato definido por la librería, en la documentación pones ejemplos de código que permitan probar ciertos puntos de tu script. Al cargar la jDoctest testeará que el código funciona como debería.

Compatibilidad

La librería funcionará con la mayoría de navegadores, el autor avisa de que Internet Explorer no está soportado debido a la diferente implementación de la función eval().

Instalación

Como todas las librerías Javascript, la instalación no es más complicada que cargar los ficheros necesarios en nuestro HTML.

<script src="jquery.js"></script>
<script src="jdoctest.js"></script>
<script>
  jDoctest.testSource( "imagefile.js" );
</script>

Preparando nuestro código

Nuestro código ha de estar debidamente comentado y para ello usaremos una sintáxis similar a esta para que la librería detecte los comentarios y pueda ejecutar las pruebas.


var ImageFile = function( url ) {
    /**class:ImageFile( url )

    A container for an image file.

        >>> var img = new ImageFile( "_static/jdoctest.png" );
        >>> img.url;
        '_static/jdoctest.png'
    */
    this.url = String( url );
};
ImageFile.prototype = {
    fetchData: function() {
        /**:ImageFile.prototype.fetchData()

        Requests the server for the image file. When the request is
        complete, it also sets the ``size`` and ``modified`` attributes
        of the object.

            >>> img.fetchData();
            >>> wait(function() { return img.data; });
            >>> img.size;
            30295
            >>> img.modified; //doctest: +SKIP
            Sat Sep 25 2010 19:57:47 GMT+0900 (KST)
        */
        $.get( this.url, function( data ) {
            this.data = data;
            this.size = data.length;
            this.modified = new Date(); // Not Implemented Yet
        });
    }
};

El resultado aparecerá en la consola de Firebug aunque está preparado para funcionar con QUnit. Y nos mostrará el resultado de los tests que hayas informado.

Si estás interesado en saber más sobre la librería, te recomiendo que le eches un vistazo a la documentación disponible por que permtie hacer cosas interesantes.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.