DEV Community

Discussion on: Cómo testear con métodos privados en PHPUNIT

Collapse
 
hugosantiagobecerraadan profile image
Hugo S. Becerra Adán • Edited

No creo que sea apropiado hacer tests para métodos privados, los test deben validar el comportamiento definido desde fuera, así se prueba la clase como una unidad independiente. Se deben preparar los casos de uso con datos y las dependencias adecuadas para forzar que ejecute el método privado y este produzca el resultado esperado observable para las aserciones del test, pero siempre desde una perspectiva externa a la propia clase que se desea validar. Si tuviera que ser necesario validar un comportamiento interno de la clase de forma aislada es posible que no se esté cumpliendo el principio de responsabilidad única o que existan acoplamientos o side-effects en el comportamiento de la clase.

Collapse
 
robertomanchado profile image
Roberto Manchado

Buen apunte Hugo. Creo que no he puesto el título debidamente correcto. En mi ejemplo muestro como utilizar métodos privados ya existentes para poder utilizarlos en lugar de crear un método que deserializa. Utilizando precisamente uno que ya existe pero es privado.