Apache flex 单元测试Flex事件处理程序

Apache flex 单元测试Flex事件处理程序,apache-flex,unit-testing,events,tdd,Apache Flex,Unit Testing,Events,Tdd,您使用什么方法来单元测试事件处理程序,特别是当它们需要来自事件的信息(例如鼠标坐标或事件目标)时?最常见的做法是将行为重构为执行提升的方法,而处理程序只是从事件中提取信息,还是有有效的方法在FlexUnit或Fluint中模拟事件分派?大多数情况下,我手动创建事件对象,并从正在侦听的对象分派事件,特别是,我可以确保没有浮动事件侦听器没有被正确删除。有时,我会遇到这样的情况:我的测试类无法访问分派对象。如果是这样,我将业务逻辑从实际的事件侦听器方法中分离出来,保持事件侦听器方法极其简单和轻量级,并

您使用什么方法来单元测试事件处理程序,特别是当它们需要来自事件的信息(例如鼠标坐标或事件目标)时?最常见的做法是将行为重构为执行提升的方法,而处理程序只是从事件中提取信息,还是有有效的方法在FlexUnit或Fluint中模拟事件分派?

大多数情况下,我手动创建事件对象,并从正在侦听的对象分派事件,特别是,我可以确保没有浮动事件侦听器没有被正确删除。有时,我会遇到这样的情况:我的测试类无法访问分派对象。如果是这样,我将业务逻辑从实际的事件侦听器方法中分离出来,保持事件侦听器方法极其简单和轻量级,并测试业务逻辑。但是,如果可以的话,从对象进行调度要好得多

FlexUnit和Flunit不提供任何事件调度的“模拟”;如果可以访问该对象,则可以从中分派,如果不能,FlexUnit/Flunit也不能

不过,在使用事件时,您需要了解FlexUnit/Flunit如何提供异步单元测试的方法。调度模拟事件意味着您正在启动一个操作,但该操作在方法完成时没有完成,因此您必须创建一个异步测试。FlexUnit的文档在其ASDocs中,Flunit在其主页上有一个很好的在线文档集: