• Teaser Home

    Clean Code Developer School

    Saubere Softwareentwicklung üben – regelmäßig, fokussiert, individuell, angeleitet

INotifyPropertyChanged Tester

Library Kata „INotifyPropertyChanged Tester“

Implementiere eine Bibliothek, mit der überprüft werden kann, ob eine Klasse das Interface INotifyPropertyChanged korrekt implementiert.

Das Interface INotifyPropertyChanged wird beim Data Binding verwendet. Durch den PropertyChanged Event wird den Subscribern mitgeteilt, dass sich eine Eigenschaft des Objekts geändert hat. Daraufhin können dann beispielsweise Bildschirmelemente aktualisiert werden.

Ein automatisierter Test für eine Eigenschaft sieht üblicherweise wie folgt aus:

Diesen Test für jede Eigenschaft einer Klasse zu erstellen, ist sehr viel Aufwand, der in keinem guten Verhältnis zum Nutzen steht. Mit Hilfe der zu implementierenden Bibliothek soll der Test wie folgt aussehen:

Der Typ der zu testenden Klasse wird als generischer Methodenparameter an die Verify Methode übergeben. Diese instanziert daraufhin ein Objekt des Typs und ermittelt per Reflection alle Eigenschaften, für die der PropertyChanged Event implementiert werden muss. Anschließend werden alle Eigenschaften daraufhin überprüft, ob sie den Event auslösen und ob dabei der Name der Eigenschaft korrekt übergeben wird.