[pyar] Interfases y Mock

Juan Gabardini jgabardini en gmail.com
Lun Feb 21 18:11:22 ART 2011


hola

Les paso lo que me dicen los muchachos de tdd-es
Carlos Ble: Mocker (http://niemeyer.net/mocker) -> Specification checking
for API
Alfredo Casado: http://python-mock.sourceforge.net/ -->interfase checking
Jorge Uriarte Aretxaga:
http://www.voidspace.org.uk/python/mock/mocksignature.html#mocksignature-argument-to-patch

esas soluciones me cierran, voy a ver si las implemento, aunque antes tengo
que leer un poco más.

tienen algún comentario sobre estos frameworks?
gracias

2011/2/21 Juan Gabardini <jgabardini en gmail.com>

> Hola
>
> En el equipo estamos tratando de hacer TDD. Mi poca experiencia en TDD es
> en Java, y les comento un problema que me encontré, posiblemente causado por
> tratar de martillar (Java) con un destornillador (Python).
>
> La situación:
> 1- Estoy agregando funcionalidad a una clase A y quiero comprobarlo en una
> prueba unitaria.
> 2- La clase delega parte de la implementación a un tercero B (con un método
> B.m() ). No quiero probar el tercero (estaría integrando), solo quiero saber
> que A invoca a B.m. Uso Mockist style [1]
> 3- En este caso particular, no usé ningún framework de mock. Implemento el
> mock (_mock_B.m) usando duck-typing [2][3]
> 4- Las pruebas pasan
>
> El problema
> 5- Agrego nueva funcionalidad en B. Para eso, cambio la firma del método m
> 6- Las pruebas pasan ... y no deberían. El motivo: _mock_B.m no cambió, ya
> no se cumple que _mock_B.m sea un doble de B.m
>
> La pregunta
> Se me ocurre varias maneras de solucionar esto: clases abstractas [4] como
> mixin, interfases [5], pruebas entre el mock y la clase real, pruebas de
> integración, ...
> Ninguna me convence.
> De que forma manejarian esto?
>
> Muchas gracias
> Nota: voy a postear esta pregunta también en tdd-es y foro-agiles. Espero
> que no moleste
>
> [1] http://martinfowler.com/articles/mocksArentStubs.html
>  <http://martinfowler.com/articles/mocksArentStubs.html>[2]
> http://en.wikipedia.org/wiki/Duck_typing
> [3] http://docs.python.org/glossary.html#term-duck-typing
> [4] http://docs.python.org/library/abc.html
> [5] http://dirtsimple.org/2004/12/python-interfaces-are-not-java.html
>
> --
> Juan Gabardini
> twitter&skype:jgabardini | http://softwareagil.blogspot.com
>
>


-- 
Juan Gabardini
twitter&skype:jgabardini | http://softwareagil.blogspot.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110221/fbdbdb15/attachment.html>


More information about the pyar mailing list