Macciolata: spedizione vincolante eventi?
-
29-09-2019 - |
Domanda
E 'possibile chiedere Macciolata a eventi vincolante spedizione?
Ad esempio, dato questa classe:
class Person {
[Bindable]
public var name:String;
}
Mi piacerebbe il mock:
var mockPerson:Person = nice(Person);
Per inviare un propertyChangeEvent
quando il campo name
è il cambiamento.
Soluzione
Come lei ha ricordato gli eventi di rilegatura sono casi di PropertyChangeEvent
, basta creare un'istanza utilizzando PropertyChangeEvent.createUpdateEvent()
e l'uso che con .dispatches()
.
In questo modo:
mock(person).setter("name").arg(anything())
.dispatches(PropertyChangeEvent.createUpdateEvent(person, "name", oldValue, newValue));
Si noti tuttavia che la oldValue
e newValue
dovranno essere forniti.
vedo il merito a fare una scorciatoia per questo scenario visto che è molto utilizzato vincolante. L'unica parte difficile è mantenere il valore precedente.
Se si voleva attuare per affrontare da soli vi suggerisco di guardare le classi Answer
e Decorator
e sottoclassi.