Mockolate: Versand Ereignisse Bindung?
-
29-09-2019 - |
Frage
Ist es möglich, Mockolate zum Versand Bindungsereignis zu fragen?
Zum Beispiel dieser Klasse gegeben:
class Person {
[Bindable]
public var name:String;
}
Ich würde den mock mag:
var mockPerson:Person = nice(Person);
ein propertyChangeEvent
zu versenden, wenn die name
Feldänderung ist.
Lösung
Wie Sie Bindungsereignisse erwähnten Fälle von PropertyChangeEvent
sind, erstellen Sie einfach eine Instanz mit PropertyChangeEvent.createUpdateEvent()
und verwendet, die mit .dispatches()
.
Wie so:
mock(person).setter("name").arg(anything())
.dispatches(PropertyChangeEvent.createUpdateEvent(person, "name", oldValue, newValue));
Beachten Sie jedoch, dass die oldValue
und newValue
müssen versorgt werden.
Ich sehe Verdienst eine Verknüpfung für dieses Szenario bei der Herstellung von da Bindung stark genutzt wird. Der einzige schwierige Teil ist den vorherigen Wert zu halten.
Wenn Sie wollen dies selbst in Angriff zu nehmen Umsetzung Ich schlage vor, Blick auf den Answer
und Decorator
Klassen und Unterklassen.