csharp / intermediate
Snippet
Isolationstests mit funktionalen Delegaten
Durch die Übergabe eines Delegaten wie Func<string, bool> in eine Methode können Sie die Validierungslogik von der Ausführungslogik entkoppeln. Dieses Muster erleichtert Unit-Tests, da Sie 'Mock'-Verhaltensweisen ohne ein vollständiges Framework übergeben können.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Processor{public bool Execute(string input, Func<string, bool> validator){if (!validator(input)) return false;// Process logicreturn true;}}// Usage in testing contextvar processor = new Processor();bool result = processor.Execute("test", s => s.Length > 2);
Erklärung
1
Func<string, bool> validator
Ein Delegat, der eine Funktion repräsentiert, die einen String annimmt und einen Boolean zurückgibt.
2
if (!validator(input))
Ruft den übergebenen Delegaten auf, um festzustellen, ob die Verarbeitung fortgesetzt werden soll.
3
s => s.Length > 2
Ein Lambda-Ausdruck, der während des Tests als spezifische Validierungsstrategie übergeben wird.