Microsoft
26.11.2023, 09:02 Uhr
Fakes in .NET 8
Entwickler Martin Taillefer erklärt in einem Blogpost wie Fakes in .NET 8 das Erstellen von Tests vereinfachen können.
Microsoft hat mit .NET 8 mehrere Fakes eingeführt, um die Erstellung von Tests zu vereinfachen. In diesem Artikel beschreibt Entwickler Martin Taillefer den Logging Fake, den Metering Fake und den Time Provider Fake.
Die Idee hinter dem Logging-Fake ist die Verwendung einer benutzerdefinierten Implementierung von ILogger, deren Aufgabe es ist, alle protokollierten Zustände in einem speicherinternen Puffer zu erfassen und zu akkumulieren, so dass sie von einer Testsuite aus inspiziert werden können.
Der Metrik-Fake verwendet ein ähnliches Modell, bei dem alle gemeldeten Metrik-Updates erfasst werden und der resultierende Status leicht zu überprüfen ist. Da Metriken ganz anders in .NET integriert werden als die Protokollierung, ist das Fake-Modell auch anders und einfacher.
Der Typ TimeProvider ist neu in .NET 8 und bietet einen einfachen Satz von Methoden zum Abrufen der aktuellen Zeit, der aktuellen Zeitzone und zum Erstellen von Zeitgebern. Dies entspricht der Funktionalität, die bereits in .NET vorhanden ist, mit der Ausnahme, dass die Methoden nicht statisch sind. Stattdessen handelt es sich um Instanzmethoden für einen Typ, der sowohl echte als auch unechte Implementierungen haben soll.
Darüber hinaus gibt es in .NET 8 noch Fake-Host, den Fake Redactor und Fake Eata Taxonomy, die Martin Taillefer in seinem Artikel nicht näher beschreibt.