csharp / intermediate
Snippet
Entkopplung der Logik für Testbarkeit
Die Verwendung von Schnittstellen ermöglicht Dependency Injection, was für Unit-Tests entscheidend ist. Durch die Abhängigkeit von IEmailService anstelle einer konkreten Klasse können Sie in Tests problemlos eine Mock-Implementierung injizieren.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public interface IEmailService{void Send(string message);}public class NotificationManager{private readonly IEmailService _service;public NotificationManager(IEmailService service) => _service = service;public void Notify(string msg){if (string.IsNullOrEmpty(msg)) return;_service.Send(msg);}}
Erklärung
1
public interface IEmailService
Definiert einen Vertrag, der während des Tests durch einen Mock ersetzt werden kann.
2
public NotificationManager(IEmailService service)
Der Konstruktor empfängt die Implementierung, was eine lose Kopplung ermöglicht.