Mockolate にバインド イベントをディスパッチするように依頼することは可能ですか?
たとえば、次のクラスがあるとします。
class Person {
[Bindable]
public var name:String;
}
モックが欲しい:
var mockPerson:Person = nice(Person);
フィールドが変更されたpropertyChangeEvent
ときにディスパッチします。name
Mockolate にバインド イベントをディスパッチするように依頼することは可能ですか?
たとえば、次のクラスがあるとします。
class Person {
[Bindable]
public var name:String;
}
モックが欲しい:
var mockPerson:Person = nice(Person);
フィールドが変更されたpropertyChangeEvent
ときにディスパッチします。name
バインディング イベントは のインスタンスであると述べたように、 を使用しPropertyChangeEvent
てインスタンスを作成し、PropertyChangeEvent.createUpdateEvent()
それを使用し.dispatches()
ます。
そのようです:
mock(person).setter("name").arg(anything())
.dispatches(PropertyChangeEvent.createUpdateEvent(person, "name", oldValue, newValue));
ただし、oldValue
とnewValue
を指定する必要があることに注意してください。
バインディングが頻繁に使用されるため、このシナリオのショートカットを作成するメリットがあると思います。唯一のトリッキーな部分は、以前の値を保持することです。
これを自分で実装したい場合はAnswer
、Decorator
クラスとサブクラスを参照することをお勧めします。