2011-08-04 24 views
5

VS 2010 permite pruebas de unidades de métodos privados. ¿Es eso una buena idea? Siempre escuché que los escenarios de pruebas unitarias eran solo para los métodos públicos. ¿Debo molestarme con los métodos y propiedades privados?C# - VS 2010 Unit Testing para métodos privados

Gracias Leo

Respuesta

5

En su infinita sabiduría, Jon Skeet escribió una vez (en C# en profundidad) 'Estoy feliz de probar todo lo que pueda de la manera más sencilla posible'

en mi humilde opinión, si piense que un método privado merece una prueba unitaria y luego pruébelo.

+0

Estoy de acuerdo. Específicamente, considero que muchos de los métodos estáticos privados míos son buenos candidatos para evaluar a los miembros privados de la unidad. Es especialmente útil si tengo métodos de enfoque restringido que realmente no quiero trasladar a una nueva clase de "ayuda". –

0

Aunque también sería bueno probar todos sus métodos/propiedades privados, lo que realmente cuenta son sus métodos/propiedades públicas (es decir, lo que expone al mundo exterior). En última instancia, sus métodos/propiedades privadas se utilizarán de alguna manera por sus métodos/propiedades públicas.

Si quiere probar sus métodos/propiedades privados por su cuenta, entonces pruébelos. Pero como no se usarán directamente (y, en cambio, indirectamente), no creo que sea absolutamente necesario.

1

Dos razones para no probar métodos privados:

1) pruebas quebradizas. El método privado es un detalle de implementación que es posible que desee cambiar en el futuro sin romper las pruebas.

2) Duplicación. El código en métodos privados debe estar cubierto por las pruebas que ejercen objetos utilizando su interfaz pública. Si este es el caso, simplemente estaría probando lo mismo dos veces.

+0

seguramente querrá ver qué se rompe, por qué y cómo si está cambiando un método privado? – puser

0

Como se ha dicho, pruébelo si siente la necesidad y puede, pero tenga en cuenta que una prueba unitaria de un método privado es más probable que se rompa si alguien lo modifica, lo que puede convertirse en un gran Dolor en el culo en un gran proyecto con un montón de pruebas unitarias, mi consejo sería, probar solo aquellos métodos cuya funcionalidad es muy clara y es menos probable que se modifique.