csharp / expert
Snippet
Entkoppeltes Zustands-Testing
Demonstriert manuelle Dependency Injection für die Testbarkeit. Durch das Abstrahieren von System-Primitiven wie der Zeit in Interfaces wird Code deterministisch testbar, ohne vom externen Systemzustand abhängig zu sein.
snippet.cs
csharp
1
2
3
4
5
6
7
8
public interface IDateTimeProvider { DateTime Now { get; } }public class Processor(IDateTimeProvider timer){public bool IsExpired(DateTime expiry) => timer.Now > expiry;}// In Test: var mock = new MockTimer { Now = fixedDate };
Erklärung
1
public interface IDateTimeProvider
Definiert eine Abstraktion für eine nicht-deterministische Ressource (Systemzeit).
2
public class Processor(IDateTimeProvider timer)
Verwendet einen primären Konstruktor, um die Abhängigkeit zur Isolation zu injizieren.