2010-06-10 12 views
7

¿Conoce algún proyecto de software abierto que haya tenido pruebas unitarias particularmente interesantes/bien redactadas?Pruebas unitarias interesantes y bien redactadas para leer (programación alfabetizada)

Las pruebas de unidad de escritura a menudo me resultan raras, porque parece demasiado aleatorio, demasiado denso, escaso ... Sería genial leer algunos ejemplos del mundo real (en lugar de libros, código de ejemplo de biblioteca, etc.).

+0

intente ver el desarrollo impulsado por el comportamiento, p. el proyecto Cucumber es un gran ejemplo de un lenguaje de dominio externo específico, que tiene como objetivo crear pruebas de aceptación en un lenguaje cercano al lenguaje natural. –

+0

Sí, aprecio la belleza de las diversas DSL que están disponibles para proyectos y pruebas de ruby, y los diferentes paradigmas que ilustran. Sin embargo, el punto crítico son las partes en las que debe ser preciso y la complejidad es alta, en lugar de las pruebas secuenciales, como con el pepino. –

Respuesta

2

He encontrado que this blog post by Misko Hevery es muy útil, especialmente porque incluye enlaces a su código fuente real con pruebas unitarias muy bien redactadas.

Actualización: Desafortunadamente, los enlaces en su publicación están rotos ahora. Sin embargo, puede encontrar el archivo fuente actual con una búsqueda en http://code.google.com/p/testability-explorer/source/browse/trunk/testability-explorer/src/test/java/com/google/test/metric/collection/KeyedMultiStackTest.java.

2

Recientemente tuve el problema de detectar rangos de fechas superpuestos en Python. Me impresionó profundamente la elegancia de this solution, y en particular las pruebas unitarias que lo acompañaron. Son cortos, claros y exhaustivos. Además, dibujar los casos en arte ASCII en la docstring es un golpe de genio, en mi opinión.

El único cambio que hice fue dividir cada assert en una prueba separada, para un mejor aislamiento.

+0

Las pruebas de la unidad en el enlace que proporcionó se ven muy bonitas y claras. Sin embargo, debe decirse que la escritura de pruebas de unidad para una función que devuelve un valor booleano basado en cuatro parámetros sin dependencias externas es una alegría, pero en la vida real me he enfrentado mucho más a menudo con escenarios que son mucho más complejos. – trendl

+0

Acepto, aunque esto es realmente hermoso y compacto, las partes duras se ocupan de varias dependencias (como las infames pruebas relacionadas con la base de datos) que existen en aplicaciones reales. –