FlexMonkey将单元测试引入Flex用户界面开发
2009-09-21 00:00:00 来源:WEB开发网测试中的每一个操作都生成出了一个UIEventMonkeyCommand。每一个命令都指定一个操作,属性/值对用以标识该操作以及操作相关参数所对应的目标组件。(所有可用的操作都在http://code.google.com/p/flexmonkey/wiki/FlexMonkeyCommand有记录。)在这个例子中,每一个UIComponent都使用了automationName 属性来标识,但正如上面提到的,我们可以使用任意的属性值对来替代。我们可以很轻松的修改这些脚本而无须重新录制。例如,我们可以通过将下述命令加入到数组中来实现在联系人管理中的ComboBox下选择电话类型为"Mobile"。
new UIEventMonkeyCommand('Select', 'inType', 'id', ['Mobile'])
我们可以尝试用编程的方式向我们的管理程序中加入1000个联系人。例如,下面的几行代码相当于不断地输入一个唯一的联系人姓名并点击add按钮:
for (var i:int=0; i<1000; i++)
{ mtTestAddNewContact.addItem(new UIEventMonkeyCommand('Input', 'inName', 'automationName', ['Contact' + i]));
mtTestAddNewContact.addItem(new UIEventMonkeyCommand('Click', 'Add', 'automationName', ['0']));
}
对于每一个生成的测试方法,都会有一个对应的Complete方法。这个Complete方法会在测试方法结束后被调用。我们可以在这个方法中附加一些断言来测试其他的属性。例如,我们可以检查脚本完成后列表中第一个联系人是不是"Fred"。
public function TestAddNewContactComplete(event:MonkeyCommandRunnerEvent, passThroughData:Object):void{
var grid:DataGrid = MonkeyUtils.findComponentWith("grid", "id"); // Find the component with id="grid"
var actual:String = grid.dataProvider[0]["name"] assertEquals("First contact was not Fred", "Fred", actual);
}
Tags:FlexMonkey 单元
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接