Avatar ·

Modificador internal en C# y pruebas unitarias: ¿cómo probar métodos internos?

¡Hola a todos! Soy un desarrollador principiante de C# y tengo un problema con las pruebas unitarias. En nuestro proyecto hay una clase con el modificador `internal` y no puedo acceder a ella desde el proyecto de pruebas. Aquí hay un ejemplo: ```csharp // En el proyecto MyLibrary (biblioteca de clases) internal class InternalService { internal string GetSecretData() { return "SensitiveInfo"; } } public class PublicService { private readonly InternalService _service = new InternalService(); public string ProcessData() { return _service.GetSecretData().ToUpper(); } } ``` Quiero escribir una prueba unitaria para `InternalService.GetSecretData()`, pero el proyecto de pruebas (MyLibrary.Tests) no ve esta clase. He oído que se puede usar `InternalsVisibleTo`, pero no entiendo bien cómo funciona. También me interesa saber si probar métodos internal viola los principios de encapsulación. ¿Quizás es mejor probar solo a través de métodos públicos? Pero entonces...