Quién tiene una solución para esa necesidad común.anotación para hacer que un método privado sea público solo para las clases de prueba
Tengo una clase en mi aplicación.
algunos métodos son públicos, ya que son parte de la API, y algunos son privados, ya que para el uso interno de hacer que el flujo interno más legible
ahora, dicen que quiero escribir una prueba unitaria, o más como una prueba de integración, que se ubicará en un paquete diferente, que se le permitirá llamar a este método, PERO, quiero que la llamada normal a este método no se permitirá si intenta llamar desde clases de la aplicación sí
así, yo estaba pensando en algo así
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
La anotación anterior marcará el método privado como "públicos para las pruebas" lo que significa, se permitirá que la compilación y tiempo de ejecución para cualquier clase que se encuentra bajo la prueba de ... paquete, mientras que la compilación y \ o de tiempo de ejecución se producirá un error de cualquier clase que no esté bajo el paquete de prueba.
alguna idea? ¿hay una anotación como esta? ¿hay una mejor manera de hacer esto?
parece que la más pruebas de unidad que se escribe, a su más reforzado para romper su encapsulación ...
¿por qué no utilizar la reflexión para acceder al método privado? – chance