Esta es la segunda entrada de la serie dedicada a pruebas unitarias. Si en la primera vimos una introducción a la programación guiada por pruebas, en esta segunda vamos a empezar a revisar los frameworks disponibles que nos ayudan a realizar los test unitarios.
Para realizar Test unitarios con Delphi disponemos de dos frameworks; Según la versión de Delphi podemos utilizarlos indistintamente, aunque a partir de la versión XE8 de Delphi, se recomienda utilizar DUnitX.
CREACIÓN DE PRUEBAS UNITARIAS (FRAMEWORKS)
Para realizar test unitarios con Delphi podemos utilizar los frameworks (ambos Open Source) DUnit y DUnitX.
A partir de la versión Delphi XE8 Embarcadero recomienda utilizar DUnitX, ya que DUnit ha quedado desactualizado. Si se ha trabajado con DUnit es relativamente fácil migrar los test ya existentes a DUnitX.
Lo que vamos a hacer es realizar los test con ambos paquetes y de esta forma también podremos ver las diferencias entre ambos y las ventajas prácticas que nos pueden aportar.
FRAMEWORK DUNIT
Para crear nuestro proyecto de pruebas unitarias que testee la clase TAritmeticaBasica de nuestra unit UClass.TAritmeticaBasica, podemos utilizar el asistente que ya trae el paquete. Si en nuestra versión de delphi no está instalado este paquete (DUnit), hay que descargarlo (de la dirección que hay más arriba) e instalarlo.
Lo primero es crear un proyecto que utilice nuestra Unit. Sería nuestra aplicación que va a utilizar esta unit. Para ello crearemos un nuevo proyecto llamado PAritmeticaBasica y le añadiremos la unit anterior.
A continuación vamos a generar, utilizando el asistente, el proyecto para las pruebas unitarias (y lo añadiremos al mismo grupo de proyectos). De esta forma tendremos nuestro proyecto y junto a el el proyecto de pruebas.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Ya está disponible desde hace un par de días, la última release de RAD Studio. El nombre oficial es 10.2 Tokyo – Release 2 (o abreviado como 10.2.2).
A continuación os pongo una lista de algunas novedades que podemos encontrar en esta release:
FireMonkey Quick Edit
Cambios visuales para ayudar al desarrollador en el diseño de formularios.
New VCL Controls
Controles nuevos para VCL. Un «Card Panel» y un «Stack Panel» y controles de selección de Fecha y Hora. Los 2 primeros mejoran la organización de controles y los 2 segundos aportan estilos más modernos a a estos dos clásicos de edición.
Updated IDE Look & Feel
Nuevo tema para el IDE, nuevos colores y nuevos iconos para actualizar y mejorar la visualización. Podemos seleccionar directamente desde la barra de opciones del IDE un tema claro/oscuro y acceder a la personalización.
También se ha modificado el layout por defecto al entrar en el IDE.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
La próxima semana se celebra el Coderage 12 de la mano de Embarcadero. Multitud de conferencias gratuitas y online sobre Delphi, C++ Builder y programación en general. Más de 70 sesiones y casi 60 ponentes para abarcar multitud de temas.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Este artículo forma parte de una serie que cuenta con varios otros alrededor del mismo tema. A continuación os adjunto los links de todas ellas (que iré completando a medida que salgan):
El objetivo más a corto plazo de un test unitario (o prueba unitaria) es el de probar una porción de nuestro código, de forma que podamos comprobar que funciona correctamente y que se ejecuta con el comportamiento para el que fue diseñado. Por lo tanto nos ayuda a encontrar fallos en nuestro código.
Podríamos decir que un objetivo más amplio de los test unitarios es, en general, mejorar la calidad del software que desarrollamos. Por un mejor diseño y por un menor número de errores.
Hay quien dice que los test unitarios están pensados para equipos de trabajo donde hay roles definidos. Personalmente considero que hoy en día los test unitarios para un programador, son como el «control de versiones» o los «repositorios de código». Para mi NO SON EXCLUSIVOS de equipos de trabajo, sino que un programador a nivel personal (individual) DEBE trabajar con ellos, aunque no esté integrado en un equipo.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Durante este mes de Agosto se ha publicado en la web de Embarcadero la traducción al Español del libro «Programación Delphi para Principiantes» que durante unos meses hemos estado traduciendo algunos de los MVP de Embarcadero de habla hispana.
Un esfuerzo y un tiempo dedicado, que los que hemos participado en este proyecto esperamos que sea útil para los que se inician en este entorno y que redunde en beneficio de la Comunidad de habla hispana.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Mucho se ha hablado de las características de Tokyo en cuanto al soporte de nuevas plataformas. Está claro que la irrupción de Linux entre las plataformas destino de nuestras aplicaciones, es el gran atractivo de esta nueva versión. Otros compañeros de la comunidad han hablado del tema y han publicado vídeos al respecto.
Tal y como se explica en el enlace de la wiki, internamente las clases realizan la sincronización de forma automátca, así que aunque no ganemos en rendimiento, si podemos ganar en organización y en claridad a la hora de escribir nuestro código y clases. Imaginad que tenemos que dibujar diferentes objetos o elementos en un TCanvas. Ahora podamos organizar el trabajo en diferentes clases (Threads) que se encarguen de dibujar cada uno de ellos. De otra forma tendríamos que tener un único código o clase donde se dibujaran todos ellos (por lo tanto menos estructurado y organizado).
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Si habéis estado atentos a las redes últimamente y/o a la comunidad de Embarcadero seguro que ya os suena el nombre de "Tokio". Este es con el que conocemos a la nueva versión de RAD Studio 10.2 que está a punto de salir.
Al igual que lo que pasó con versiones anteriores cuando se añadió FMX o el soporte para Android, esta versión trae una característica especial que sobresale sobre el resto. La inclusión de Linux como nueva plataforma "target" para las aplicaciones.
Decir que esta nueva característica no está enfocada a realizar aplicaciones gráficas (es lo primero que pregunta gente en el blog y en los foros) sino que está dirigida al desarrollo de aplicaciones servidor. Independientemente de si esta primera versión trae más características o menos, en mi opinión es que nos abre las puertas a poder desarrollar nuevas soluciones de cara a un futuro.
Por ahora el soporte incluye Ubuntu LTS Version 16.04 and RedHat Enterprise Version 7.
He dicho que esta es la característica más llamativa, pero no la única.
Se incluyen otras mejoras relacionadas con soporte para Android en Jelly Bean (4.1, 4.2, 4.3), Kit Kat (4.4), Lollipop (5.x), Marshmallow (6.x) and Nougat (7.x). Mejoras en los componentes para VCL (32 y 64 bits). Mejor soporte en multi-threading para TBitmap, TCanvas y TContext3D. Mejoras en el soporte para AppTethering para VCL y FMX. Mejoras referentes a High-DPI y soporte para monitores 4K. …
El Webminar de Lanzamiento es el 27 de Marzo y podéis revisar más información e inscribiros en el siguiente enlace.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Al final de la página también tenéis la lista de las publicadas hasta ahora, con las opciones para acceder a ellas y votar.
Básicamente, se trata de hacer una aplicación que utilice la API de la NASA y que muestre características de las últimas versiones de RAD Studio. Cualquier plataforma disponible y con el único límite de la imaginación.
Os muestro un vídeo de la mía en funcionamiento (Windows + Android)
Se puede descargar el binario para windows desde el repositorio de github. El código completo de la aplicación lo publicaré en el blog y en el repositorio, una vez que acabe la competición
Sólo me queda esperar que os guste y si es así que la votéis.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
En Delphi podemos utilizar diferentes componentes que nos permitan visualizar mapas en nuestras aplicaciones. El más básico, es el componente TWebBrowser del que ya he hablado otras veces en el blog. Al final un la visualización de un Mapa (utilizando los diferentes servicios existentes) no es más que la visualización de una página web.
Si queréis ver entradas anteriores relacionadas con esto, aquí os dejo una lista:
Aparte de esto, si queréis más información sobre el tema, os puedo recomendar las webs de:
The Road to Delphi de Rodrigo Ruz, donde podéis encontrar bastantes artículos sobre Google Maps, geolocalización, Google API,… relacionados con este tema.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…
Esta conferencia en línea totalmente gratis se realizará el 7 y 8 de diciembre de 2016 y, como siempre, estará llena de sesiones donde se tratarán temas técnicos en profundidad para todos los niveles y todo sobre el desarrollo con RAD Studio.
Se está finalizando la selección de oradores de este año, ¡que incluirá también a los principales expertos de las comunidades hispanohablantes!
ACTUALIZACIÓN (01/12/2016)
Aquí está la agenda con los diferentes seminarios programados.
AGENDA
Fecha: 7 de Diciembre
9:00 México
10:00 Colombia
12:00 Argentina
16:00 España
Migración de aplicaciones a FireDAC
Antonio Cabanillas
10:00 México
11:00 Colombia
13:00 Argentina
17:00 España
Aplicaciones distribuidas con REST
Jose García
11:00 México
12:00 Colombia
14:00 Argentina
18:00 España
TBD
TBD
12:00 México
13:00 Colombia
15:00 Argentina
19:00 España
Cómo modernizar su estilo de programación
Jhonny Arley Suárez
Fecha: 8 de Diciembre
9:00 México
10:00 Colombia
12:00 Argentina
16:00 España
Delphi MVC Framework y FireDAC
Emilio Pérez
10:00 México
11:00 Colombia
13:00 Argentina
17:00 España
Por qué usar C++Builder
Luis Felipe Gonzalez Torres
11:00 México
12:00 Colombia
14:00 Argentina
18:00 España
Desarrollando Apps Móviles con Delphi y SQLite
José Castillo Reyes
12:00 México
13:00 Colombia
15:00 Argentina
19:00 España
Creando un cliente de una API REST Fluida con la biblioteca cliente REST de Delphi
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…