Dan*_*ego 5 apache-flex tdd events unit-testing
您使用哪些方法来对单元测试事件处理程序进行单元测试,特别是如果它们需要来自事件的信息(例如鼠标坐标或事件的目标)?最常见的做法是将行为重构为一个方法,当处理程序只是从事件中提取信息时,或者是否有有效的方法来模拟FlexUnit或Fluint中的事件派遣?
小智 3
大多数情况下,我手动创建一个事件对象,并从正在侦听的对象分派事件,特别是这样我可以确保没有未正确删除的浮动事件侦听器。有时我会遇到这样的情况:我的测试类无法访问调度对象。如果是这样的话,我将业务逻辑与实际的事件侦听器方法分离,使事件侦听器方法保持极其简单和轻量级,并测试业务逻辑。如果可以的话,从对象分派要好得多。
FlexUnit 和 Flunit 不提供任何事件调度的“模拟”;如果您可以访问该对象,您就可以从它进行分派,如果不能,FlexUnit/Flunit 也不能。
但是,在使用事件时,您需要了解 FlexUnit/Flunit 如何提供执行异步单元测试的方法。分派模拟事件意味着您正在启动一个操作,该操作在方法完成时不会完成,因此您必须创建一个异步测试。FlexUnit 的文档位于其 ASDocs 中,并且 Flunit 在其主页上有一个很好的在线文档集: http: //code.google.com/p/fluint/wiki/AsyncTest