Avatar ·

Modificador internal em C# e teste de unidade: como testar métodos internos?

Olá a todos! Sou um desenvolvedor C# iniciante e tive um problema com teste de unidade. No nosso projeto, há uma classe com o modificador `internal` e não consigo acessá-la a partir do projeto de teste. Aqui está um exemplo: ```csharp // No projeto MyLibrary (biblioteca de classes) internal class InternalService { internal string GetSecretData() { return "SensitiveInfo"; } } public class PublicService { private readonly InternalService _service = new InternalService(); public string ProcessData() { return _service.GetSecretData().ToUpper(); } } ``` Quero escrever um teste de unidade para `InternalService.GetSecretData()`, mas o projeto de teste (MyLibrary.Tests) não enxerga essa classe. Ouvi dizer que é possível usar `InternalsVisibleTo`, mas não entendo bem como funciona. Também me pergunto se testar métodos internal não viola os princípios de encapsulamento? Talvez seja melhor testar apenas através dos métodos públicos? Mas então...