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...