Espiando a jQuery

Como vimos en un anterior artículo, podemos utilizar Jasmine para espiar a jQuery. En aquél caso, lo hicimos para simular el retorno de una llamada ajax, convirtiendo un posible test de integración en un test unitario en el que se mockea al colaborador.

Imaginemos que nuestro código tiene una función parecida a esta:

 

muestraConfirmacion = function () {
            $("#dialog").fadeToggle('fast');
};

 

Puede que nos interese testear que se ha llamado a fadeToggle y que el selector utilizado ha sido #dialog. Esto lo haremos espiando la función fn de jQuery. Como explican muy bien aquí fn es un alias de la propiedad prototype de jQuery, con lo que podremos utilizarlo como punto de entrada para mockear las funciones de jQuery.

Por lo tanto el test podría quedar así:

 

it("espiamos un selector", function () {
        spyOn($.fn, "fadeToggle");
        var lechazoService = new LechazoService();
        lechazoService.muestraConfirmacion();
                
        expect($.fn.fadeToggle).toHaveBeenCalled();
        expect($.fn.fadeToggle.mostRecentCall.object.selector).toEqual("#dialog");
    });

 

Como podéis observar en el código, comprobamos que se ha llamado a la función fadeToggle y que el selector utilizado ha sido #dialog.

Podéis encontrar más código de ejemplos de test en Jasmine en este repositorio de GitHub: https://github.com/vgaltes/PucelaTechDay

Espero que os sea útil.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *