Ich entwickle WPF-Anwendungen mit MVVM-Pattern. Ich habe ViewModel mit Code wie folgt:
%Vor% OnPropertyChanged
ist eine virtuelle Methode der Basisklasse, die nur PropertyChanged
event auslöst.
Ich möchte PropertyChanged
event raising testen und dort meine Testmethode:
Ist es eine gute Möglichkeit, das PropertyChanged-Ereignis zu testen?
Ich benutze eine kleine Fluent-API , um genau das zu tun. Es ermöglicht Ihnen, Tests wie folgt zu schreiben:
%Vor%Abgesehen davon, dass ich prägnant bin, bevorzuge ich diesen Ansatz, weil es typsicher ist - keine String-Werte, die mit Ihrer API synchron bleiben.
Um zu testen, dass das Ereignis für mehr als eine Eigenschaft ausgelöst wird, können Sie einfach einen anderen Test schreiben, der dies tut. Dies wird Ihnen viele Tests geben, aber jeder wird sehr klein sein und Sie vermeiden Assertion Roulette .
Ich glaube, es ist eine gute Idee, das PropertyChanged-Ereignis in dem Beispiel, das Sie gezeigt haben, zu testen. Möglicherweise haben Sie den Eigenschaftsnamen falsch geschrieben, was zu einem fehlenden Update führen würde.
Mit dem WPF-Anwendungs-Framework (WAF) ist es sehr einfach, einen solchen Komponententest zu schreiben:
%Vor%