Mockolate: événements de liaison expédition?
-
29-09-2019 - |
Question
Est-il possible de demander Mockolate aux événements de liaison d'expédition?
Par exemple, étant donné cette classe:
class Person {
[Bindable]
public var name:String;
}
Je voudrais la maquette:
var mockPerson:Person = nice(Person);
Pour envoyer une propertyChangeEvent
lorsque le champ name
est le changement.
La solution
Comme vous l'avez mentionné des événements de liaison sont des instances de PropertyChangeEvent
, il suffit de créer une instance en utilisant PropertyChangeEvent.createUpdateEvent()
et l'utilisation qui avec .dispatches()
.
comme ceci:
mock(person).setter("name").arg(anything())
.dispatches(PropertyChangeEvent.createUpdateEvent(person, "name", oldValue, newValue));
Notez cependant que le oldValue
et newValue
devront être fournis.
Je vois le mérite à faire un raccourci pour ce scénario car la liaison est fortement utilisé. La seule partie délicate est de garder la valeur précédente.
Si vous vouliez aborder la mise en œuvre vous-même, je suggère de regarder les cours de Answer
et Decorator
et sous-classes.