在Squish测试脚本中有可能要对AUT内部发生的事件做出反应。这可能是有用的,例如,当对话框意外出现时 比如一个错误消息提示,提供一个测试脚本来响应它。可以通过注册一个事件句柄函数来实现该功能,当一个指定的对象、一个指定类型的对象或者任何对象的事件发生时,调用句柄。
事件句柄函数通过调用 installEventHandler 函数来注册。对于一个应用于所有AUT对象的句柄,即全局事件句柄,只有事件类型和句柄函数被当做参数传递。对于一个应用于某一个特别的对象或者一个特殊类型的所有对象,该对象或者类型被当作第一个参数传递,接下来的参数是事件类型和句柄函数。除了标准的工具包事件(例如 Qt的QKeyEvent),也支持一些特定的Squish和工具包泛型事件如MessageBoxOpened 和 Crash。
特定的Web版的Squish
对于支持Web的Squish,始终不带参数的调用事件句柄函数,而不是传递对象作为参数(通常是事件发出的对象)。仍是有可能访问Web版的Squish事件句柄内部的对象的,但是我们必须获取指向该对象的引用,例如,使用waitForObject函数。
下面的几个小部分中我们将会看到上面三种情况下的事件句柄的示例。
Ⅰ.5.1 全局事件句柄
当弹出一个消息框时,发出MessageBoxOpened事件。(事实上, MessageBoxOpened 事件只应用于Java版的Squish,Qt版的Squish以及Windows版本的Squish;然而,对于其他的工具包有一些相似的事件。)像这种事件的所有测试脚本将会忽略事件,但是我们可以注册一个事件句柄函数,无论