Camilo Martínez
Es un error capital teorizar antes de tener datos. Sin darse cuenta uno empieza a deformar los hechos para que se adapten a las teorías, en lugar de adaptar las teorías a los hechos.
Sherlock Holmes
Escándalo en Bohemia
Arthur Conan Doyle (1891)
Desarrollo dirigido por tests, es una práctica de programación que consiste en:
(1) Escribir primero las pruebas (generalmente unitarias), (2) después escribir el código fuente que pase la prueba satisfactoriamente y, por último, (3) refactorizar el código escrito.
Con esta práctica se consigue
entre otras cosas:
Un código más robusto, más seguro, más manténible y una mayor rapidez en el desarrollo.
TDD
1
2
3
4
5
Add
Test
Test
Fail
Write
Code
Test
Success
Refactor
Code
Test
Success
6
Método > Regla Negocio, Respuesta Esperada
Convertir un numero arábigo a numero romano.
Para convertir un numero a romano, se debe descomponer en agrupaciones numéricas.
Ejemplo el 999
Luego se combinan de arriba hacia abajo: CMXCIX
Agrupación | Numero | Romano |
---|---|---|
centenas | 900 | CM |
decenas | 90 | XC |
unidades | 9 | IX |
Para convertir un numero a romano, se debe descomponer en agrupaciones numéricas.
Ejemplo el 999
class ClassName {
//Amazing Code
}
module.exports = ClassName
const ClassName = require('../path/FileName')
Export:
Import:
describe('Arabic', () => {
//Unite Tests
})
test('description', () => {
//Arrange
//Act
//Assert
})
test('description', () => {
const expected = 'I'
//Act
//Assert
})
test('description', () => {
const expected = 'I'
const result = expect(myConverter(1))
//Assert
})
test('description', () => {
const expected = 'I'
const result = expect(myConverter(1))
result.toBe(expected)
})
Una kata de código en programación es un ejercicio dirigido a que los programadores desarrollen sus habilidades a base de práctica y repetición.
La primera vez se hace con acompañamiento y orientación... pero para dominar el ejercicio se debe repetir varias veces hasta sentirse cómodo y natural.
Es más difícil hacer pruebas
después de estar escrito el código.
Paradigma Digital:
TDD como metodología de diseño de software
Yeeply:
¿Qué son las pruebas unitarias?
Testing Colombia: