• Español
    • Inglés
    • Portugués
+34 917 994 070
info@fractalia.es
Grupo FractaliaGrupo FractaliaGrupo FractaliaGrupo Fractalia
  • Sobre Fractalia
    • Quiénes somos
    • Misión, visión y valores
    • Fractalia en el mundo
    • Políticas y certificaciones
    • Responsabilidad corporativa
    • I+D+i
    • Automatización
    • Trabaja con nosotros
  • Servicios
    • Centros de soporte tecnológico
    • Smart Support
    • Ciberseguridad
    • Digital Workplace
    • Cloud
    • WiFi
    • Cartelería digital
    • In-store Analytics
    • Smart projects
  • Sectores
    • Telecomunicaciones
    • Hoteles
    • Retail
    • Industria
    • Banca
    • Empresas de Alarmas
    • Seguros
    • Multiasistencia
    • Asociaciones profesionales y colectivos
  • Clientes finales
    • Residencial
    • Pymes
    • Grandes empresas
  • Contacto

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 abril, 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

    • Protege tu Negocio frente a Amenazas Digitales

      By mj | Comments are Closed

      Estrategias Clave de Ciberseguridad para Empresas y PYMES en 2024: Protege tu Negocio frente a Amenazas Digitales En el entorno empresarial actual, las amenazas cibernéticas están en constante evolución. Para 2024, las empresas, incluidas lasRead more

    • Cómo Enfrentar el Desafío de los Ciberataques a la Cadena de Suministro en 2024

      By mj | Comments are Closed

      En la actualidad, las empresas operan en un entorno globalizado y digitalizado donde la interconectividad entre proveedores, distribuidores y socios estratégicos es crucial para la eficiencia operativa. No obstante, esta misma conectividad ha introducido riesgosRead more

    • Beneficios que ofrecen las Tecnologías de la información y Redes Sociales Corporativas a las pymes

      By mj | Comments are Closed

      En los últimos años, las Pymes españolas se han concienciado de las ventajas de las TICs y las redes sociales corporativas  para las empresas.  Las TIC a través de las redes sociales corporativas han supuesto grandes cambiosRead more

    • La importancia de un buen soporte tecnológico en las empresas

      By mj | Comments are Closed

      El soporte TI suele ser visto como una necesidad exclusiva de las grandes empresas, pero no es así y hoy día toda empresa debe tener en cuenta la importancia de un buen soporte tecnológico paraRead more

    • CENTROS DE SOPORTE TÉCNICO Y TECNOLOGICO

      By mj | Comments are Closed

      El soporte TI se ha convertido en un componente integral para para la operación y administración exitosa de su negocio Contar con un equipo profesional de acompañamiento en todo lo relacionado con tu infraestructura tecnológica,Read more

    Leave a Comment

    Cancelar la respuesta

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


    El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

    NextPrevious

    Buscar

    Categories

    • cartelería Digital
    • Ciberseguridad
    • cloud
    • Corporativo
    • digital signage
    • Digital Signage
    • Empresas de Alarmas
    • Hogar Digital
    • Hotel
    • IA
    • Innovación
    • Internet
    • Internet of things
    • IT
    • Mobile Advertising
    • Publicidad Dinamica
    • Retail
    • Servicio WiFi
    • servicios cloud
    • Sin categorizar
    • Smart Projects
    • Soluciones de Retail Analytics

    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 cuenta con más de 25 años de experiencia y una sólida presencia internacional con actividad en 12 países de todo el mundo. Ofrecemos vanguardismo tecnológico, experiencia y cercanía para innovar y crecer con nuestros clientes.

    Visite nuestro blog
    Aviso Legal
    Política Privacidad
    Política Cookies
    Panel Cookies

    CANAL DE ÉTICA
    CONTACTAR

    FRACTALIA COMPROMETIDA

    Fractalia está comprometida a aplicar su Sistema de Gestión Integrado.

    Más información

    ¿QUIERES TRABAJAR CON NOSOTROS?

    Si quieres formar parte de un equipo orientado a la innovación y a la mejora continua para que cada acción de la compañía aporte valor a nuestros clientes, no dudes en ponerte en contacto con nosotros.

    ÚNETE
    Grupo Fractalia © 2025
    • Sobre Fractalia
      • Quiénes somos
      • Misión, visión y valores
      • Fractalia en el mundo
      • Políticas y certificaciones
      • Responsabilidad corporativa
      • I+D+i
      • Automatización
      • Trabaja con nosotros
    • Servicios
      • Centros de soporte tecnológico
      • Smart Support
      • Ciberseguridad
      • Digital Workplace
      • Cloud
      • WiFi
      • Cartelería digital
      • In-store Analytics
      • Smart projects
    • Sectores
      • Telecomunicaciones
      • Hoteles
      • Retail
      • Industria
      • Banca
      • Empresas de Alarmas
      • Seguros
      • Multiasistencia
      • Asociaciones profesionales y colectivos
    • Clientes finales
      • Residencial
      • Pymes
      • Grandes empresas
    • Contacto
    • Español
      • Inglés
      • Portugués
    Grupo Fractalia