Archivo

Archivo para la categoría ‘Delphi’

Entornos de ejecución de test con DUnitX (Bonus track)

martes, 26 de junio de 2018 Sin comentarios
Share Button

Con la anterior entrada del blog completamos la serie sobre test unitarios y los frameworks a utilizar con Delphi, con una visión general sobre DUnitX. A continuación tenéis los links a las entradas de la serie.

Esta última no estaba prevista inicialmente, pero la última ya era bastante extensa y no quise mezclar con el tema de DUnitX este “Bonus track”. Digamos que esta es como un apéndice a la serie.

DUnitX permite ejecutar los test que diseñamos utilizando diferentes salidas. Digamos que el programa de ejecución de test puede estar diseñado en “modo consola”, utilizando un ejecutable VCL o generando un programa FMX. No hablamos de los test en sí, sino del programa que nos muestra la salida y los resultados de la ejecución.

A continuación vamos a repasar casda uno de ellos.

Leer más…

Categories: Delphi, TDD, Unit test Tags: , ,

Delphi y C++Builder Iberian Tour 2018

martes, 5 de junio de 2018 Sin comentarios
Share Button

Como viene siendo habitual los últimos años, Danysoft distribuidor oficial de Embarcadero Delphi en España y Portugal organiza el «Iberian Tour».

Presentaciones gratuitas sobre las novedades de las últimas versiones de Delphi y C++Builder.

Este año en Barcelona, Madrid y Valencia (7, 8 y 12 de Junio respectivamente).

El link para ver los contenidos y registrarse es el siguiente

Un saludo.

Test Unitarios; Framework DUnitX (Entrega 4)

martes, 15 de mayo de 2018 Sin comentarios
Share Button

Completamos con esta entrada la serie sobre test unitarios, centrándonos en el Framework DUnitX, que es el que actualmente embarcadero recomienda y se incluye en las últimas versiones de Delphi.

INTRODUCCION

Como ya he comentado en las entradas anteriores, DUnitX es una evolución de DUnit (y que además recoge ideas de otros paquetes similares como NUnit). Si no lo tenéis en la versión actual de Delphi con la que estáis trabajando, podéis descargarlo desde el repositorio de Github, y deberíais poder instalarlo sin problemas. DUnitX soporta versiones de Delphi 2010 y posteriores.

A continuación os adjunto una tabla con las diferencias más significativas en cuanto a características que DUnitX nos aporta frente a DUnit. (click sobre ella para verla ampliada).

Leer más…

Categories: Delphi, TDD, Test Tags: , , ,

Convertir Test de DUnit a DUnitX (Entrega 3)

lunes, 30 de abril de 2018 Sin comentarios
Share Button

Con este artículo pensaba completar esta serie referente a pruebas unitarias y a los Frameworks más utilizados en Delphi para realizarlas, pero el tema de conversión y migración de test entre DUnit y DUnitX se ha alargado más de lo esperado, así que para no generar una entrada muy larga y mezclar temas he decidido «partirla» en dos».

De esta forma dejo para la siguiente el Framework DUnitX en profundidad y en esta me he centrado en explicaros cómo migrar los test existentes que tengamos desarrollados en DUnit.

En las últimas versiones de Delphi, DUnitX es el framework que se recomienda usar desde Embarcadero. Veremos que es más flexible y parametrizable que DUnit, aunque si hemos trabajado con DUnit, DUnitX nos será muy familiar en su mayoría de aspectos (es una evolución de DUnit, NUnit y algunos otros…).

Si ya hemos trabajado con DUnit antes que con DUnitX (como hemos hecho en las entradas del blog) podemos «migrar» nuestros test de forma sencilla, ya que existen determinadas Units ya creadas para adaptar nuestros test existentes.

Leer más…

Categories: Delphi, OOP, TDD, Test Tags: , , , ,

Test Unitarios; Framework DUnit (Entrega 2)

jueves, 1 de febrero de 2018 2 comentarios
Share Button

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.

Concretamente en esta nos centraremos en DUnit.

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.

  1. 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.
  2. 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.

 

Leer más…

Categories: Código, Delphi, Test Tags: , ,

Ya disponible RAD Studio 10.2 Tokio Release 2 (10.2.2)

jueves, 14 de diciembre de 2017 2 comentarios
Share Button

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).

Imagen_fondo

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.

     

    VCL_controls

  • 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.

Leer más…

Coderage XII (7-9 de Noviembre)

viernes, 3 de noviembre de 2017 Sin comentarios
Share Button

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.

CodeRage_12

Aquí tenéis la lista completa de sesiones:

https://community.embarcadero.com/article/16578-coderage

Y aquí el link de registro:

https://register.gotowebinar.com/register/7990350396754529539

Test Unitarios; Introducción (Entrega 1)

martes, 24 de octubre de 2017 3 comentarios
Share Button

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):

¿Qué es un test unitario?

UnitTesting1El 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.

Leer más…

«Programación Delphi para Principiantes»; eBook en Español

lunes, 21 de agosto de 2017 8 comentarios
Share Button

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.

Portada del libro

Es un libro, tal como su título explica, está destinado a personas que se inician en la programación con Delphi; La idea es que esté accesible de forma gratuita para profesores y estudiantes que formen parte del «Programa Académico Embarcadero».

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.

Os adjunto la imagen del índice:

Contenido del libro

Un saludo y hasta la próxima.

Categories: Delphi, Embarcadero, Otros Tags: , ,

Multi-Threading for TBitmap, TCanvas, and TContext3D

viernes, 7 de abril de 2017 8 comentarios
Share Button

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.

En mi caso voy a hablar de otra de las novedades de la versión Tokyo. Se trata del soporte de multithread para las clases TBitmap, TCanvas y TContext3D en Firemonkey para poder trabajar con un único elemento desde diferentes threads.

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).

Leer más…