csharp / intermediate
Snippet
Entkopplung von Logik für verifizierbare Unit-Tests
Um Code testbar zu machen, sollten Abhängigkeiten (wie ein Nachrichtendienst) über Schnittstellen übergeben werden, anstatt sie direkt zu instanziieren. Dieses Muster ermöglicht es, während des Testens 'Mock'-Objekte einzufügen, um die Logik isoliert zu verifizieren.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface IMessageService { void Send(string msg); }public class OrderProcessor(IMessageService service){public void CompleteOrder(int id){// Business logic here...service.Send($"Order {id} completed.");}}// In test: Create a mock implementation of IMessageService// to verify Send was called without sending real emails.
Erklärung
1
public class OrderProcessor(IMessageService service)
Verwendet einen primären Konstruktor, um die Abhängigkeit zu deklarieren und zu empfangen.
2
service.Send($"Order {id} completed.");
Die Logik hängt von der Abstraktion (Interface) ab, was den Austausch gegen einen Test-Double erleichtert.