愚人呓语 eidiot's blog. My flapdoodles.

10五/11

一小段 signals 测试代码

在自己的项目里进一步完善了 signals, 目前已全面替代了自定义事件并整合进 Robotlegs,写起代码来更舒服了。

assertEquals(575, instance.getCount("foo")); 
handleSignal(this, instance.countChanged, function(signal:ValueChangedSignal):void {
  assertEquals("foo", signal.key); 
  assertEquals(500, signal.value); 
  assertEquals(575, signal.old);
  assertEquals(500, signal.target.getCount("foo")); 
}); 
instance.setCount("foo", 500);
21五/10

使用FlexUnit4对as3-signals进行异步测试

Read in English: Async test for as3-signals with FlexUnit4

使用 Robert Penneras3-signals 可以帮助我们节省代码量并写出更整洁的代码. 这是一个由几个代理方法组成的使用 FlexUnit4进行测试的扩展

  • proceedOnSignal
  • handleSignal
  • failOnSignal
  • registerFailureSignal

proceedOnSignal

使用这个方法确认一个signal必须被抛出。

[Test(async)]
public function test_proceedOnSignal():void 
{
    var model:IModel = new SomeModel();
    proceedOnSignal(this, model.changedSignal);
    model.doSomethingChange();
}
6一/10

as3-signals 的 FlexUnit4 扩展

Read in English: FlexUnit 4 Utility of as3-signals

as3-signals 写了一个 FlexUnit 4 的扩展

例子:

Async.proceedOnEvent(this, new SignalAsync(instance.someSignal), SignalAsyncEvent.CALLED);
instance.doSomeThingShouldDispatchSomeSignal();