TDD (Test Driven Development)
Vamos a convertir números arábigos a romanos.
En linux:
mkdir NETConfTDD
cd NETConfTDD
dotnet new sln --name=NETConfTDD
dotnet new classlib --name=NETConfTDD
dotnet new mstest --name='NETConfTDD.Tests'
dotnet add "NETConfTDD.Tests/NETConfTDD.Tests.csproj" reference "NETConfTDD/NETConfTDD.csproj"
dotnet sln NETConfTDD.sln add 'NETConfTDD.Tests/NETConfTDD.Tests.csproj' 'NETConfTDD/NETConfTDD.csproj'
- ¡Pensar!
- Escribir una prueba que compile, pero no pase (Rojo).
- ¡Pensar si la prueba que escribimos tiene sentido!
- Escribir LA MÍNIMA CANTIDAD DE CÓDIGO necesaria para que la prueba pase (Verde).
- Refactorizar, es decir, limpiar el código escrito SIN AÑADIR NUEVA FUNCIONALIDAD (Azul).
- Volver a empezar el ciclo.
Vamos a utilizar el patrón AAA para seccionar los casos de pruebas:
- Arrange (Preparación): Donde creamos los objetos necesarios para ejecutar el caso de pruebas.
- Act (Ejecución): Donde se ejecuta el SUT (Software under Test), es decir el método que vamos a probar.
- Assert (Acertar): Donde verificamos el resultado esperado del caso de pruebas.
Pensar en la mínima funcionalidad posible para resolver los números romanos.
Podrán encontrar la primera prueba en RomanNumeralsTests.cs.
Ya pensé que resolver el 1 es el caso más sencillo que da inicio al problema.
Por favor escriban dentro del método ArabicToRoman el MÍNIMO CÓDIGO NECESARIO para pasar la primera prueba.
Refactorizamos, si podemos.
Generen las pruebas y sus correspondientes implementaciones para los siguientes casos:
-
public void Should_ArabicToRoman_When_2_Return_II()
-
public void Should_ArabicToRoman_When_3_Return_III()