Encontré la discusión en Do you test private method informativa.Mejores prácticas para probar métodos protegidos con PHPUnit
He decidido que en algunas clases, quiero tener métodos protegidos, pero probarlos. Algunos de estos métodos son estáticos y cortos. Debido a que la mayoría de los métodos públicos los usan, probablemente pueda eliminar las pruebas de forma segura más adelante. Pero para comenzar con un enfoque TDD y evitar la depuración, realmente quiero probarlos.
pensé en lo siguiente:
- Method Object como aconsejó en an answer parece ser excesiva para esto.
- Comience con los métodos públicos y cuando la cobertura del código esté dada por pruebas de nivel superior, gírelas protegidas y elimine las pruebas.
- heredar una clase con una interfaz comprobable métodos de toma protegidas públicas
¿Cuál es la mejor práctica? ¿Hay algo mas?
Parece que JUnit cambia automáticamente los métodos protegidos para que sean públicos, pero no lo he examinado más detenidamente. PHP no permite esto a través del reflection.
Y lo que esta es la discusión de estilo y por lo tanto no constructiva. De nuevo :) – mlvljr
Puedes llamarlo en contra de las reglas del sitio, pero simplemente llamarlo "no constructivo" es ... es insultante. – Visser
Dos preguntas: 1. ¿Por qué debería molestarse en probar la funcionalidad que su clase no expone? 2. Si debe probarlo, ¿por qué es privado? – nad2000