• English
    • Spanish
    • Portuguese
+34 917 994 070
info@fractalia.es
Grupo FractaliaGrupo FractaliaGrupo FractaliaGrupo Fractalia
  • About Fractalia
    • Who we are
    • Mission & Values
    • Fractalia in the world
    • Policies and certification
    • Corporate responsibility
    • R&D+i
    • Automation
    • Work with us
  • Services
    • Technological support centers
    • Smart Support
    • Cybersecurity
    • Digital Workplace
    • Cloud
    • Wi-Fi
    • Digital signage
    • In-store Analytics
    • Smart projects
  • Sectors
    • Telecommunications
    • Hotels
    • Retail
    • Industry
    • Banking
    • Alarm companies
    • Insurance
    • Multi-assistance
    • Professional associations
  • End customers
    • Residential customers
    • Smes
    • Large companies
  • Contact

Desarrollo dirigido por Test (TDD) 1/2

    Home IT Desarrollo dirigido por Test (TDD) 1/2
    NextPrevious

    Desarrollo dirigido por Test (TDD) 1/2

    By Redaccion | IT | 0 comment | 3 April, 2014 | 0

    El sistema llamada TDD (Test Driver Developer o Desarrollo Dirigido por Test) es una nueva metodología para trabajar en el desarrollo web basado en la idea de desarrollar pruebas, codificar y refactorizar el código construido. El TDD establece un nuevo modelo esencial para la productividad que aporta resultados más legibles, menos redundantes y fáciles de mantener, que hace posible que nuestras aplicaciones den un salto de calidad considerable.

    Este tutorial desea aportar las bases necesarias para seguir esta metodología, en concreto se van a indicar los pasos necesarios para realizar pruebas TDD en aplicaciones web efectuadas sobre Angular js (framework JavaScript) y Node js (entorno JavaScript de lado del servidor).

    Por el momento se han identificado tres modos de efectuar las pruebas, dos desde el lado del cliente y una desde el lado del servidor. Estos métodos son:

    • Jasmine – Independiente en el lado del cliente
    • Karma – Usando Jasmine en el lado del cliente
    • Jamine –  node en el lado del servidor

    ¿Qué es Jasmine?

    Jasmine es un framework de pruebas de comportamiento que nos ofrece herramientas para poner a prueba nuestro código. Por ejemplo, si lo que necesitamos es saber si nuestra función devuelve true, podemos usar esta estructura sin necesidad de introducir ningún de introducir ningún otro dato.

    tdd1. Código ejemplo

    En este caso, esperamos que nuestra función devuelva true, por lo que debemos ejecutar dicha función y comprobar la salida con toBe  para ver si es realmente cierto. Por lo que si nuestra función devuelve true, deberíamos ver una salida como esta:

    TDD2. Código ejemplo

    ¿Qué es Karma?

    Karma es un corrector de pruebas que usa el framework de pruebas para ayudar al desarrollador a evitar el desarrollo de configuraciones complejas y crea un flujo de trabajo dinámico que permite ahorrar tiempo y esfuerzo. Funciona principalmente analizando nuestras fuentes y pruebas de código y ejecutando los test automáticamente. Por ejemplo, podemos probar nuestro código en distintos navegadores o podemos excluir archivos en nuestras pruebas.

    ¿Qué es Jasmine- Node?

    Básicamente, podemos definir Jasmine-Node, como el puerto de Jasmine al nodo, muy útil para la realización de pruebas de funcionalidades en el lado del servidor.

    ¿Cómo obtener las herramientas?

    • Para instalar Jasmine y utilizarlo de modo independiente en el lado del cliente sólo se debe de ir al sitio web y descargar el zip.
    • Para instalar Karma, necesitamos tener instalado previamente Node js. Y posteriormente debemos utilizar npm para instalarlo. Se recomienda instalarlo a nivel global ya que se va a utilizar como una herramienta del lado del terminal.TDD3. Código ejemplo
    • Para instalar Jasmine-Node, usamos de nuevo el terminal y npm. En este caso también se recomienda instalarlo de forma global para poder usarlo en el terminal.TDD4. Código ejemplo

    ¿Cómo integrar las herramientas en un proyecto existente?

    Pongamos un ejemplo de una aplicación web sencilla desarrollada con Angular js, con la siguiente estructura:

     TDD5. Código ejemplo

    Jasmine empleado únicamente como soporte

    Este método es la forma más fácil de ejecutar pruebas unitarias en dos situaciones diferentes, o bien cuando el código a analizar no es demasiado extenso o bien cuando no es demasiado complicado. Una vez que se haya descargado Jasmine, sólo será necesario descomprimirlo y comprobar su estructura interna. Esto es lo que obtendremos:

    Código ejemplo Jasmine

    A continuación, emplearemos la carpeta Jasmine 2.0.0 (que contiene los archivos que hacen posible que las pruebas funcionen) y SpecRunner.html (página web que integra todos los archivos que necesitamos y muestra los resultados de la prueba en el navegador). El resto de carpetas /spec y /rsc contienen las especificaciones.

    Nosotros en este ejemplo que presentamos, no vamos a utilizar las carpetas /spec y /src pero nos pueden dar una primera idea de la estructura de carpetas disponibles en Jasmine 2.0.0. Este programa contiene una carpeta de especificaciones donde estará localizado el código original de nuestra aplicación. Así lo que necesitamos, es integrar Jasmine en nuestra aplicación, introduciendo la carpeta Jasmine 2.0.0 en nuestra carpeta libs y la página SpecRummer.html en la carpeta principal de la aplicación. Una vez efectuada esta operación, nuestra nueva estructura del proyecto será:

    TDD7. Código ejemplo

    Importante: cuando creemos los archivos de test o pruebas, es necesario mantener la misma nomenclatura siempre para poder utilizar los mismos archivos en todas las pruebas. Siempre es necesario terminar con el nombre spec.js.

    TDD8. Código ejemplo

    Asique ahora tenemos dos acciones más que efectuar sobre nuestro código:

    • Configurar el archivo SpecRunner.html para que apunte a las carpetas y los archivos adecuados.
    • Poner en marcha el sitio de pruebas en nuestro navegador para probar nuestra aplicación.

    Para configurar el archivo SpecRunner.html tendremos que cambiar la cabecera que aparece por defecto por la cabecera específica que necesitamos. El encabezado por defecto está configurado para ejecutar el ejemplo que viene en el código de Jasmine y tiene la siguiente apariencia:

    El estilo para el sitio de la pruebaTDD9. Código ejemplo

    Los archivos de Jasmine contenidos en la carpeta de Jasmine 2.0.0.TDD10. Código ejemplo

    Los archivos de orígenes de nuestra aplicación.TDD11. Código ejemplo

    Los archivos de texto de nuestro código

    TDD12. Código ejemplo

    Para probar nuestra aplicación que estamos utilizando como ejemplo, debemos de modificar este código predeterminado por Jasmine por el siguiente:

    El estilo para el sitio de la prueba TDD13. Código ejemplo

    Los archivos de Jasmine contenidos en la carpeta de Jasmine 2.0.0.

    TDD14. Código ejemplo

    Los archivos de Angular js que necesitamos para probar la aplicaciónTDD15. Código ejemplo

    Los archivos de orígenes de nuestra aplicaciónTDD16. Código ejemplo

    Los archivos de prueba para nuestro códigoTDD17. Código ejemplo

    Obsérvese que hay un nuevo archivo de Angular js que no estaba en nuestra estructura inicial del proyecto. Debemos descargarlo y añadirlo para probar la aplicación, por lo que ahora nuestra estructura del proyecto debe ser:

    TDD18. Código ejemplo

    Ahora nos hace falta sólo efectuar alguna prueba, por lo que vamos a crear un ejemplo rápido. Vamos a testear si la aplicación es capaz de definir una variable dentro de un controlador. Por ello debemos de crear un módulo y un controlador en nuestra aplicación application.js y luego realizar la prueba de control del mismo. Este sería el código dentro de nuestro archivo.

    application.js

    TDD19. Código ejemplo

    application.spec.js

    TDD20. Código ejemplo

    Una vez que se haya instalado PHP, Apache, etc en el equipo. ¿Cómo se puede poner en marcha un servidor de forma rápida en la carpeta del proyecto?

    Se puede hacer de manera sencilla si utilizamos el terminal para ir a la carpeta del proyecto, donde tenemos el archivo index .html y luego simplemente ejecutar:

    TDD21. Código ejemplo

    Por ejemplo, 5000

    TDD22. Código ejemplo

    Posteriormente, al ir al navegador, vaya a http://localhost:5000 en lugar de ir a su aplicación web en funcionamiento. Para mostrar la página de prueba, sólo se debe de añadir la ruta al archivo de corredor de especificaciones http://localhost:5000/SpecRunner.html

    No tags.

    Related Post

    • FRACTALIA obtiene la certificación ISO 9001:2008 de gestión de calidad

      By Redaccion | 0 comment

      La norma ISO 9001:2008 es una norma internacional que contempla los requisitos relacionados con los sistemas de calidad en todos los procesos de gestión, la producción y gestión de los recursos, como en la responsabilidadRead more

    • FRACTALIA se instala en TURQUÍA

      By Redaccion | 0 comment

      Fractalia continúa con su expansión internacional y está vez el país elegido ha sido Turquía. Desde Mayo de 2012, nuestra organización ha efectuado importantes acercamientos con las grandes compañías de telecomunicaciones instaladas en este país.Read more

    • Smart TV Box Android. Hi- 802 (Hipad)

      By Redaccion | 0 comment

      En este post os dejamos algunas de nuestras impresiones acerca de los dispositivos TV Box Android modelo Hi-802, analizados en el laboratorio de pruebas de Fractalia. Características OS: Android 4.0 ICS CPU: Freescale i.MX6Q Quad CoreRead more

    • Smart TV Box Android. UG802+ (Ibex Elite)

      By Redaccion | 0 comment

      El dispositivo  TV Box Android modelo UG802 es uno de los mini pc elegidos por el laboratorio de innovación de Fractalia para su análisis en profundidad. El objetivo de estos estudios es determinar las característicasRead more

    • FRACTALIA firma un acuerdo son SAMSUNG en el ámbito del Digital Signage

      By Redaccion | 0 comment

      Fractalia y Samsung dan un paso más en su consolidación como partners en el sector de Digital Signage. Gracias a este acuerdo Fractalia cuenta con el soporte y apoyo tecnológico de Samsung para desarrollar unaRead more

    • SCRUM con sabor FRACTALIA

      By Redaccion | 0 comment

      Pensar en las metodologías de desarrollo suele hacerme pensar en la biología, los ecosistemas y la evolución. Cada metodología tiene un nicho en el cual domina por características particulares, siendo estos nichos de extensión variableRead more

    • Pruebas de QUALITY ASSURANCE “QA” (1/2)

      By Redaccion | 0 comment

      Hoy en día vivimos en un mundo cada vez más exigente, con mucha competencia y es vital entregar un producto software de forma rápida y segura. Un error en cliente puede conllevar quedarse fuera delRead more

    • FRACTALIA consolida su actividad comercial en CHINA

      By Redaccion | 0 comment

      El Grupo Fractalia comienza su andadura comercial en el país asiático a finales del año 2008, siguiendo un plan de expansión de sus actividades de negocio basadas en la gestión remota de grandes redes deRead more

    Leave a Comment

    Cancel reply

    Your email address will not be published. Required fields are marked *


    The reCAPTCHA verification period has expired. Please reload the page.

    NextPrevious

    Buscar

    Categories

    • No categories

    Recent Posts

    • La Evolución de la Seguridad Empresarial y las Soluciones Clave en Fractalia
    • La Importancia de la Inteligencia Artificial en la Detección de Amenazas Cibernéticas
    • Protege tu Negocio frente a Amenazas Digitales
    • Cómo Enfrentar el Desafío de los Ciberataques a la Cadena de Suministro en 2024
    • Transformación Digital: Cómo las Empresas Pueden Prepararse para el Futuro

    Fractalia

    Fractalia has more than 25 years of experience and a solid international presence with activities in 12 countries around the world. We offer cutting-edge technology, experience and proximity to innovate and grow with our customers.

    Visit our blog
    Legal Notice
    Privacy Policy
    Cookies Policy
    Cookies Panel

    ETHICS CHANNEL
    CONTACT

    FRACTALIA COMMITTED

    Fractalia is committed to applying its integrated management system.

    More info

    WOULD YOU LIKE TO WORK WITH US?

    If you would like to be part of a team that focuses on innovation and continuous improvement so that every action by the company adds value to our customers, do not hesitate to contact us.

    JOIN US
    Grupo Fractalia © 2025
    • About Fractalia
      • Who we are
      • Mission & Values
      • Fractalia in the world
      • Policies and certification
      • Corporate responsibility
      • R&D+i
      • Automation
      • Work with us
    • Services
      • Technological support centers
      • Smart Support
      • Cybersecurity
      • Digital Workplace
      • Cloud
      • Wi-Fi
      • Digital signage
      • In-store Analytics
      • Smart projects
    • Sectors
      • Telecommunications
      • Hotels
      • Retail
      • Industry
      • Banking
      • Alarm companies
      • Insurance
      • Multi-assistance
      • Professional associations
    • End customers
      • Residential customers
      • Smes
      • Large companies
    • Contact
    • English
      • Spanish
      • Portuguese
    Grupo Fractalia