Modificateur internal en C# et tests unitaires : comment tester les méthodes internes ?
Bonjour à tous ! Je suis un développeur C# débutant et j'ai un problème avec les tests unitaires. Dans notre projet, il y a une classe avec le modificateur `internal`, et je ne peux pas y accéder depuis le projet de test.
Voici un exemple :
```csharp
// Dans le projet MyLibrary (bibliothèque 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();
}
}
```
Je veux écrire un test unitaire pour `InternalService.GetSecretData()`, mais le projet de test (MyLibrary.Tests) ne voit pas cette classe. J'ai entendu dire qu'on peut utiliser `InternalsVisibleTo`, mais je ne comprends pas bien comment cela fonctionne. Je me demande aussi si tester les méthodes internes ne viole pas les principes d'encapsulation. Peut-être vaut-il mieux tester uniquement via les méthodes publiques ? Mais alors...