Exponga exactamente lo que se necesita para sus clientes previstos y escenarios de uso, y nada más.No consideraría las pruebas unitarias como cliente y realizaría cambios para que el código que no está destinado para el consumo público comience por el público solo por el bien de las pruebas unitarias. Si lo hace, desordenará su API, reducirá la usabilidad de su API y hará que los cambios futuros sean más difíciles y no ideales, ya que ahora puede haber un código de cliente que use lo que se supone que es una API privada.
Verificaría si tiene mejores alternativas. Por ejemplo, puede generar accesos privados en Visual Studio 2005 y 2008 que hagan pública la API no pública de una clase con fines de prueba. Esto puede complicar el código de su unidad de prueba, pero para mí lo más importante es su diseño y la API que está liberando a sus clientes, incluidos usted y su equipo.
En otro aspecto, también mencionaría que las pruebas unitarias le dan una gran oportunidad para ver qué tan bien es su diseño y qué tan fácil es consumir su API desde la perspectiva del cliente. Armado con frustraciones, problemas, etc. durante el desarrollo de la prueba unitaria, usted realiza cambios para mejorar su API y su diseño para que sea más simple, hermoso y utilizable.
Sí, veo muchas referencias de libros. De hecho, a menudo hago preguntas favoritas que contienen buenas referencias a libros. – Pete
@Pete: Gracias por la información. – trappedIntoCode