En el proceso de desarrollo de una funcionalidad en el sistema se generó un método publico llamado TransferenciaBancaria, el cual consistia en transferir monto de un cuenta a otra. Para ello, se implemento internamente 2 métodos privados, de los cuales no se le hizo pruebas unitarias, sino se aplico la prueba unitaria solo al principal TransferenciaBancaria, por tanto se dijo que no se estaba aplicando TDD completamente, esto es cierto?. En TDD sino generó todas las pruebas unitarias para métodos privados no es TDD?
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
¿En TDD es cierto que si no realizo pruebas unitarias a los métodos privados, no estoy aplicando TDD al 100%?
- preguntó
- Software
- 747 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola Alberto,
puede ser cierto...
Cuando hacés TDD, se suponen algunas cosas y otros son reglas a cumplir.
Una regla a cumplir es el porcentaje de cobertura del código que te piden. Lo sensato es pedir alrededor de un 70% de cobertura del código ejercitado por los test. Esto se da siempre en el contexto en que el cliente es quien escribe los test, o al menos un equipo independiente del equipo de desarrollo.
Por otra parte, no sé qué software de testeo estás usando, pero si tu método público funciona usando los métodos privados, estos métodos privados ya fueron cubiertos por el testeo y el analizador de cobertura debería mostrarte esto: sería una contradicción tener que volver públicos los métodos privados para testearlos, ya que por un lado deben hacer tareas pareciales que no tienen sentido sin el contexto del llamador, y por otro el modelo no debería nunca pedir que se violen lo sprincipios de POO.
Acá trabajamos mayoritariamente en PHP y PHPUnit muestra la cobertura del código, incluyendo lo que requirió llamar a métodos privados, siempre a través de la interfaz pública del Objeto. Se ve por ejemplo así: http://archive.typeoneerror.com/files/images/xdebug.jpg
Por último algunos supuestos: se supone que no tiene sentido testear los setters y los getters y otros métodos extremadamente triviales y es por esto que nunca se pide una cobertura del código del 100%.
Pero esto implica que, si trabjando se descubre que algún método relevante para el Modelo no está ejercitado por los test que te dieron, deberías escribir un test para ejercitarlo, dándole así sentido completo a la TDD.
En resumen, aplicás TDD bien si tu código pasa todas las pruebas que et dieron y si agregaste pruebas de cosas relevantes que no estaban cubiertas originalmente. A su vez, creo que no se aplica correctamente TDD si sos vos el que escribe el código y los test: está abundamente demostrado que los test tienen que ser escritor por personas que no estén involucradas en la generación del código.
Saludos cordiales!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 676882
- 1
- Jul 5, 2015
Sin Respuesta
-
- 63
- 0
- Oct 18
-
- 156
- 0
- Jul 9
-
- 515
- 1
- Mar 19
-
- 384
- 2
- Feb 26
-
- 4581
- 0
- Nov 7, 2023
-
- 473
- 0
- Sep 19, 2023
-
- 451
- 0
- Ago 21, 2023
-
- 632
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
- ¿Qué libros me recomiendan para comprender mejor TDD - Test Driven Development en NET c#?
- Estoy queriendo obtener todos los Articulos de una tabla que pertenecen a 2 Categorias diferentes en una misma query
- ¿Por que los parametros no se envian en la request y si en "content: protected"
- Cómo calculo en Access las horas de un número de minutos si la suma de éstos es mayor que 24 horas?
- Netbeans me corre el proyecto pero no me lo muestra (solo es en el proyecto que hice otros proyectos me los ejecuta).
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
- ¿Qué libros me recomiendan para comprender mejor TDD - Test Driven Development en NET c#?
- Estoy queriendo obtener todos los Articulos de una tabla que pertenecen a 2 Categorias diferentes en una misma query
- ¿Por que los parametros no se envian en la request y si en "content: protected"
- Cómo calculo en Access las horas de un número de minutos si la suma de éstos es mayor que 24 horas?
- Netbeans me corre el proyecto pero no me lo muestra (solo es en el proyecto que hice otros proyectos me los ejecuta).
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos