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.