Capítulo 2. Dinero multidivisa

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Siguió rápido y siguió más rápido

Edgar Allen Poe, El cuervo

¿Te pareció demasiado lento el ciclo rojo-verde-refactor que seguimos en el Capítulo 1?

Una respuesta de "¡Claro que sí!" (o alguna frase que rime) es comprensible.

El objetivo del desarrollo basado en pruebas no es obligarnos a ir despacio -o rápido, para el caso-. Su objetivo es permitirnos ir a un ritmo con el que nos sintamos cómodos: acelerando cuando podamos, ralentizando cuando debamos.

En este capítulo, introduciremos monedas adicionales y la posibilidad de multiplicar y dividir dinero en cualquier moneda. Veamos si podemos acelerar un poco el ritmo.

Entra en el euro

El segundo punto de nuestra lista de características de introduce una nueva moneda:

5 USD × 2 = 10 USD

10 EUR × 2 = 20 EUR

4002 KRW / 4 = 1000,5 KRW

5 USD + 10 EUR = 17 USD

1 USD + 1100 KRW = 2200 KRW

Esto indica que necesitamos una entidad más general que la Dollar que creamos en el capítulo anterior: algo como Money, que encapsula una amount (que ya tenemos) y una currency (que aún no tenemos). Escribamos pruebas para dar cuerpo a esta nueva función.

Ve a

Escribamos una nueva prueba en money_test.go. Esta prueba requiere que cuando una estructura que representa "10 EUR" se multiplique por 2, obtengamos "20 EUR":

func TestMultiplicationInEuros(t *testing.T) {
    tenEuros := Money{amount ...

Get Aprender el desarrollo basado en pruebas now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.