0 Tage Serie
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.