jueves, 25 de junio de 2015

Jasmine. Matchers (III) - toThrow, toThrowError

Artículos anteriores:
Jasmine. Introducción. Creando el primer test
Jasmine. Matchers (I) - toBe, toEqual, toMatch, toBeDefined, toBeUndefined, toBeNull
Jasmine. Matchers (II) - toBeTruthy, toBeFalsy, toContain, toBeLessThan, toBeGreaterThan, toBeCloseTo

En este artículo voy a mostrar el funcionamiento de dos matchers de Jasmine un tanto especiales, se trata de matchers que, en lugar de comprobar que nuestro código no falla, nos ayudan a comprobar que nuestro código falla cuando debe de fallar y de la forma que debe de fallar.

Son los matchers toThrow y toThrowError que nos permiten comprobar que las funciones producen errores cuando esperamos que los produzcan, generalmente cuando reciben parámetros no válidos.

miércoles, 24 de junio de 2015

Jasmine. Matchers (II) - toBeTruthy, toBeFalsy, toContain, toBeLessThan, toBeGreaterThan, toBeCloseTo

Artículos anteriores:
Jasmine. Introducción. Creando el primer test
Jasmine. Matchers (I) - toBe, toEqual, toMatch, toBeDefined, toBeUndefined, toBeNull

En este artículo sigo repasando los diferentes matchers que nos proporciona el framework de Jasmine. Concretamente veremos los matchers toBeTruthy, toBeFalsy, toContain, toBeLessThan, toBeGreaterThan, toBeClose.

martes, 23 de junio de 2015

Jasmine. Matchers (I) - toBe, toEqual, toMatch, toBeDefined, toBeUndefined, toBeNull

Artículos anteriores:
Jasmine. Introducción. Creando el primer test

Jasmine implementa un importante número de funciones de comprobación o matchers.

Los matchers nos permiten comprobar si un valor cumple una condición determinada, o si no la cumple anteponiendo la palabra clave not al matcher.

Vamos a repasar estos matchers viendo ejemplos de su funcionamiento.

lunes, 22 de junio de 2015

Jasmine. Introducción. Creando el primer test

Jasmine es uno de los frameworks de pruebas de código JavaScript más utilizados. Como sus propios creadores indican no depende de ninguna otra librería JavaScript y no requiere de un DOM para ejecutarse.
Este articulo pretende ser el primero de una serie en la que iré explicando desde cómo descargar el framework y crear nuestro primer test hasta cómo personalizar las características del framework o utilizar el plugin jasmine-ajax que permite simular llamadas Ajax en los tests.

domingo, 21 de junio de 2015

SlickGrid. DataView (y IV) - Paginación

Artículos anteriores:

El objeto DataView provee también soporte para paginación en cliente, es decir si, como en nuestro ejemplo, tenemos el conjunto de datos completo descargado en cliente.

Para gestionar la paginación el objeto DataView dispone de dos métodos

  • getPagingInfo(): método que devuelve el estado actual de la paginación. Devuelve un objeto con cuatro propiedades:
    • pageSize: número de filas por página
    • pageNum: número de página actual. Es un índice basado en cero, es decir la primera página tiene un pageNum igual a cero.
    • totalRows: número total de filas del grid, sumando las de todas las páginas.
    • totalPages: número total de páginas. La última página se correspondería con un pageNum igual a totalPages menos uno.
  • setPagingOptions(args): método que establece las opciones de paginación. Recibe un objeto que puede tener dos propiedades:
    • pageSize: establece un nuevo tamaño de página (número de filas a mostrar por página). Si pageSize es cero todas las filas se muestran en una única página.
    • pageNum: establece la página actual. Un valor de 0 desplaza el grid a la primera página, mientras que un valor de (getPagingInfo().totalPages - 1) desplazará el grid a la última página.

y un evento:

  • onPagingInfoChanged: que se lanza cada vez que cambia el estado actual de paginación, ya sea porque se cambian las opciones o se cambia la página actual.

sábado, 20 de junio de 2015

SlickGrid. DataView (III) - Filtros de datos

Artículos anteriores:
Para realizar el filtrado de datos el DataView proporciona dos métodos:
  • setFilter(filterFunction): método que permite establecer la función de filtrado. La función pasada como parámetro es llamada para cada uno de los elementos del origen de datos y recibe a su vez dos parámetros:
    • item: con el elemento de datos a filtrar
    • args: con un objeto con los valores del filtro
    La función devuelve true si el elemento cumple las condiciones del filtro, en otro caso devuelve false.
  • setFilterArgs(args): método que nos permite establecer un objeto con los valores a aplicar al filtro y que recibirá como parámetro la función definida mediante el método setFilter.

viernes, 19 de junio de 2015

SlickGrid. DataView (II). Ordenación simple y múltiple

Artículos anteriores:
Para habilitar la ordenación con el DataView deberemos seguir estos dos sencillos pasos:

  • Definir por qué columnas se va a poder ordenar el grid estableciendo la propiedad sortable de éstas a true en la definición de columnas.
  • Suscribirse al evento sort del SlickGrid con una función que llame a la ordenación del DataView. La ordenación del DataView se genera invocando el método sort que recibe dos parámetros:
    • comparer: una función comparadora que recibe como parámetros dos elementos de datos y devuelve 1 si el primero es mayor que el segundo o -1 en caso contrario
    • sortAsc: valor booleano que indica si la ordenación es ascendente

El evento de ordenación onSort del SlickGrid devuelve un objeto args que contiene, si no está habilitada la ordenación por múltiples columnas, dos propiedades que definen la ordenación a realizar:

  • sortCol: definición de la columna sobre la que se va a realizar la ordenación
  • sortAsc: valor booleano que indica si la ordenación es en orden ascendente