单元测试Flex事件处理程序

5

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

1个回答

3
通常我会手动创建事件对象并从被监听的对象中分派事件,特别是为了确保没有未正确移除的浮动事件侦听器。偶尔我会遇到这样一种情况,即我的测试类无法访问分派对象。如果是这种情况,我会将业务逻辑与实际事件侦听器方法分开,使事件侦听器方法非常简单和轻量级,并测试业务逻辑。如果可以,最好从对象中分派事件。
FlexUnit和Flunit不提供任何事件分派的"模拟"功能;如果您可以访问对象,则可以从中进行分派,如果您无法访问,则FlexUnit / Flunit也无法访问。
但是,在使用事件时,您需要了解FlexUnit/Flunit如何提供执行异步单元测试的方法。分派模拟事件意味着您正在启动一个在方法完成时不结束的操作,因此您必须创建异步测试。FlexUnit的文档在他们的ASDocs中,而Flunit在其主页上有一个很好的在线文档集:http://code.google.com/p/fluint/wiki/AsyncTest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接