Proyecto de formación

TDD en seis lenguajes

Escribir la prueba primero, seis veces

El mismo CRUD escrito prueba por prueba en C#, Python, React, PHP, Rust y Go, más los ejercicios de JUnit 5: ocho suites y 137 casos que corren en Docker.

De qué se trata

La primera práctica de Pruebas y gestión de la configuración pedía los ejercicios de JUnit 5, un ejercicio de pruebas unitarias y un CRUD con TDD en tres lenguajes distintos de Java y Kotlin. Entregué seis, los tres obligatorios en C#, Python y React, y además PHP, Rust y Go.

Como los seis resuelven el mismo problema, lo único que cambia entre ellos es el lenguaje y su ecosistema de pruebas. En total son ocho proyectos y 137 casos de prueba, 111 de ellos en los CRUD.

Qué hace

  • Un CRUD de listas de reproducción con TDD en seis lenguajes, que son C# con xUnit, Python con pytest, React con Vitest, PHP con PHPUnit, y Rust y Go con sus herramientas de prueba.
  • Los seis comparten el modelo, con una entidad validada, un repositorio en memoria, identificadores asignados por el repositorio y dos clases de error, y pruebas que se llaman igual en todos.
  • Los ejercicios de la guía de JUnit 5 en Java y Kotlin, y pruebas unitarias frente a integración con Mockito.
  • Un docker-compose con un servicio por lenguaje que corre las ocho suites sin instalar ningún SDK.
  • Una página de presentación con el código, las pruebas y sus corridas, que también ejecuta cada suite en vivo, local o en Docker.

Decisiones y sus costos

  1. Fijar el problema para comparar lenguajes

    Seis implementaciones no se pueden comparar si cada una resuelve algo distinto.

  2. Docker para no depender del equipo de la exposición

    Instalar seis SDK en el computador del salón era el riesgo más grande.

Repositorios

Cada repositorio público del proyecto, con lo que contiene.

  • 2026

    PGCEngineeringSebastian-s

    Pruebas y gestión de la configuración, con CRUDs escritos con TDD en seis lenguajes, 111 pruebas además de los ejercicios de JUnit y un script que corre las ocho suites en Docker.

    Java, Kotlin, C#, Python, PHP, Rust, Go, React
Organización en GitHub: EngineeringSebastian-s

Stack

Elige una tecnología para ver qué proyectos la usan.