PDF de programación - TDD y python

Imágen de pdf TDD y python

TDD y pythongráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.177 visualizaciones desde el 14 de Enero del 2017
1,9 MB
33 paginas
Creado hace 10a (02/01/2014)
TDD y Python

[email protected]

@IWT2_Javier

/

TDD no es probar

1. You are not allowed to write
any production code unless
it is to make a failing unit
test pass.

2. You are not allowed to write
any more of a unit test than
is sufficient to fail; and
compilation failures are
failures.

3. You are not allowed to write
any more production code
than is sufficient to pass the
one failing unit test.

Esto es todo

Gracias por
su atención

La complejidad

“Test-Driven

Development (TDD) is a

deceptively simple

idea”

“El Desarrollo Dirigido
por Pruebas (TDD) es

una idea

engañosamente

simple”

“Test-Driven Development (TDD) is a deceptively simple idea”“El Desarrollo Dirigido por Pruebas (TDD) es una idea engañosamente simple” ¿Qué buscamos?

¿Por qué querríamos hacer
TDD?

La complicación

Una buena manera de aplicar TDD

Ahora a por un problema

Hazme un programa que me

busque ficheros del mismo tamaño

y me los borre.

Piensa

Y tú, ¿qué harías?

Con TDD

Con TDD Escribe una prueba

Mi primera prueba:

Arrange:

Un directorio
Dos ficheros iguales dentro

ese directorio

Llamar al algoritmo de

de

Act:

borrado
Assert:

Uno de los ficheros ya no

está



y el otro sí

Escribe una prueba

Mi primera prueba:

Arrange:

Un directorio
Dos ficheros iguales dentro

ese directorio

Llamar al algoritmo de

de

Act:

borrado
Assert:

Uno de los ficheros ya no

está



y el otro sí

¿Creo un directorio y dos

ficheros a mano?

Tengo que crearlo cada vez

que ejecute la prueba

¿Creo un directorio y fichero

con código?

Tengo que aprender a

hacerlo y necesito código

para restaurarlo

¿Obtengo un listado de los

Tengo que aprender a

No lo necesito

ficheros?

hacerlo
(aún)

¿Creo un directorio y dos ficheros a mano?Tengo que crearlo cada vez que ejecute la prueba¿Creo un directorio y fichero con código?Tengo que aprender a hacerlo y necesito código para restaurarlo¿Obtengo un listado de los ficheros?Tengo que aprender a hacerloNo lo necesito (aún) Vamos a escribir código

Snippet 01

Snippet 01 TDD = ¡¡¡ Piensa !!!!

Directorio

Dame
Ficheros

Borra
este

Borrado de ficheros

DirectorioBorrado de ficheros Utilizando Dobles de Prueba

• Diseñamos el API que

queremos.

• No nos preocupamos
por la implementación
• Verificaos qué se está

invocando

• Devolvemos los

valores adecuados
para la prueba

Single Repsonsibility Principle

A CLASS SHOULD HAVE ONLY
ONE REASON TO CHANGE.

A CLASS SHOULD HAVE ONLY ONE REASON TO CHANGE. ¿Cuál es el mínimo código?

Snippet 02

Snippet 02 Vuelta a empezar

Snippet 03

Snippet 03 ¿Y qué hacemos con los mocks?

¿Qué hacemos con los mocks?

Cuando el directorio está vacío entonces no
tengo ficheros.
Cuando borro un fichero el directorio tiene
un fichero menos.
Cuando recupero un fichero de un
directorio entonces puedo conocer su
nombre.
Cuando recupero un fichero de un
directorio entonces puedo conocer su
tamaño.
Etc.

Directorios temporales en
Python (módulo tempfile)

Directorios temporales en Python (módulo tempfile) ¿Y cuando lo ponemos todo junto?

En el mundo real

Conclusiones de este ejemplo

• U
I

• Cómo

• ¿Cómo

podemos leer
una única vez
cada
directorio?

sabemos si
hay más de
un fichero con
el mismo
tamaño?

• ¿Cómo

leemos los
ficheros de un
directorio?

• ¿Cómo

borramos
ficheros?
• ¿Cómo

leemos el
tamaño de un
fichero?

•¿Cómo leemos los ficheros de un directorio?•¿Cómo borramos ficheros?•¿Cómo leemos el tamaño de un fichero?•UI•Cómo podemos leer una única vez cada directorio?•¿Cómo sabemos si hay más de un fichero con el mismo tamaño? Retrospectiva de lo que Hemos
Hecho

Nos centramos
en el algoritmo

Tardamos más
en terminar

Nos centramos en el algoritmoTardamos más en terminar Testing en Python

http://wiki.python.org/moin/PythonTestingToolsT
axonomy

Unittest,
Doctest, Nose
Mockito for

Python, Mocker,

Pydoubles
Selenium,
Django Testing
Behave, PyFIT,
Lettuce,
Mamba

http://wiki.python.org/moin/PythonTestingToolsTaxonomyUnittest, Doctest, NoseMockito for Python, Mocker, PydoublesSelenium, Django TestingBehave, PyFIT, Lettuce, Mamba Advertencia

TD
D

Yo

Conclusiones

Pruébalo y elige

Pruébalo y elige Extra

Para saber más de

TDD.

28

¿Quién soy yo?

Extra

10.000 líneas de código C#...
Comprobado…. 124
assemblies .NET generados….
Comprobado…. 52 scripts de
construcción… comprobado

Ahora que mis pruebas
unitarias están escritas
puedo empezar a construir
mis componentes.

Extra

31

Enlaces











Blog: http://iwt2-javierj.tumblr.com/
Libro:
http://www.iwt2.org/web/opencms/IWT2/comunidad/LibroTDD/?lo
cale=es
GameUS: http://www.gameus.es/
IWT2 DojoUS:
http://www.iwt2.org/web/opencms/IWT2/comunidad/dojous/?local
e=es
Pybonacci:
http
://pybonacci.wordpress.com/2013/01/07/desarrollo-dirigido-por-pr
uebas-en-python-i-una-historia-que-pasa-todos-los-dias/#
more-1352 
http://pybonacci.wordpress.com/2013/06/19/desarrollo-dirigido-
por-pruebas-en-python-ii-un-caso-practico-i/

Twitter: @IWT2_Javier/ @GameUsSev / @TDDPractico Fin

32

Fin Ahora sí

FIN
  • Links de descarga
http://lwp-l.com/pdf1528

Comentarios de: TDD y python (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad