0 Tage Serie
csharp / expert
Snippet

Interne Sichtbarkeit für Test-Isolierung

Experten-Testing erfordert oft die Entkopplung interner Komponenten, ohne diese öffentlich zu machen. Durch die Verwendung des Attributs 'InternalsVisibleTo' können Sie die Kapselung für den Bibliotheksnutzer aufrechterhalten, während Ihre Test-Suite Abhängigkeiten in die interne Logik injizieren kann.

snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// In BusinessLogic.csproj
// [assembly: InternalsVisibleTo("BusinessLogic.Tests")]
internal interface IInternalEngine
{
void Step();
}
public class Coordinator(IInternalEngine engine)
{
public void Run() => engine.Step();
}
// In test project, you can now mock or implement IInternalEngine despite it being internal.
Erklärung
1
internal interface IInternalEngine
Verbirgt das Interface vor externen Assemblies, um eine saubere API zu erhalten.
2
InternalsVisibleTo
Ein Attribut auf Assembly-Ebene, das einer spezifischen 'Friend'-Assembly Zugriff auf interne Member gewährt.