Sie sind auf Seite 1von 1

Library Kata INotifyPropertyChanged Tester

Implementiere eine Bibliothek, mit der berprft 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 gendert hat. Daraufhin knnen dann beispielsweise Bildschirmelemente aktualisiert werden. Ein automatisierter Test fr eine Eigenschaft sieht blicherweise wie folgt aus:
[Test] public void Name_Property_lst_PropertyChanged_Event_korrekt_aus() { var kunde = new Kunde(); var count = 0; kunde.PropertyChanged += (o, e) => { count++; Assert.That(e.PropertyName, Is.EqualTo("Name")); }; kunde.Name = "Stefan"; Assert.That(count,Is.EqualTo(1)); }

Diesen Test fr jede Eigenschaft einer Klasse zu erstellen, ist sehr viel Aufwand, der in keinem guten Verhltnis zum Nutzen steht. Mit Hilfe der zu implementierenden Bibliothek soll der Test wie folgt aussehen:
[Test] public void Properties_lsen_PropertyChanged_Event_korrekt_aus() { NotificationTester.Verify<Kunde>(); }

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, fr die der PropertyChanged Event implementiert werden muss. Anschlieend werden alle Eigenschaften daraufhin berprft, ob sie den Event auslsen und ob dabei der Name der Eigenschaft korrekt bergeben wird.

http://ccd-school.de

Das könnte Ihnen auch gefallen