Ⅰ.2.6.5 如何测试QAction、QMenu、以及QMenuBar(Qt 4)

原创 2015年11月18日 15:58:01

如果我们想检查一个菜单项的属性,可以使用Squish IDE插入验证点,或者手写代码。这里我们介绍如何写代码。

QMenus(QWidgets 也是如此)有一份QAction 对象列表。我们可以获取这个列表,使用QList API 遍历它的actions,对于每个action我们可以查询或者设置它的属性。首先我们看一个访问一个action的属性的例子,然后看一下该例依赖的自定义函数 getAction 的实现。

    editMenu = waitForObject(":CSV Table - Unnamed.Edit_QMenu")
    removeAction = getAction(editMenu, "&Remove Row")
    test.verify(not removeAction.enabled)
    test.verify(not removeAction.checked)
    insertRowAction = getAction(editMenu, "&Insert Row")
    test.verify(insertRowAction.enabled)
    test.verify(not insertRowAction.checked)
这里我们获取一个应用程序的Edit 菜单的应用,检查remove row action是否可用以及是否可选,然后insert row action是否可用以及是否可选。(通常情况下是这样的,当使用 Tcl 时,我们选择使用test.compare 函数而不使用test.verify函数)。

def getAction(widget, text):
    actions = widget.actions()
    for i in range(actions.count()):
    action = actions.at(i)
    if action.text == text:
    return action
这个小函数获取所给widget的actions列表,然后遍历该列表知道找到符合text的action。返回对应的action(或者没找到,返回null)。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Ⅰ.2.6.8 如何测试QTable (Qt 3)

一个QTable由那些可以使用QTable::item函数返回的item组成的。 例如,为了测试一个text中包含“Kiwi”的cell是在第五行第四列(使用基于0的索引),可以使用下面的代码: ...

麦琪的礼物

麦琪的礼物 教案示例一   作者:番达 文章来源:网络共享 更新时间:2006-1-5 【字体:小 大】   教案示例一   第一课时     (一)明确目标     1.理清故事情节     2.掌...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Ⅰ.19 如何实现自动化批量测试

这个部分将会阐释设置自动化测试运行的必要步骤,以及如何处理结果。 由创建一个处理Squish的测试结果的脚本开始(以XML格式输出),这个结果产生一个HTML文件,它包含的结果可以用web浏览区打开...

Ⅰ.4 如何使用测试语句

这个部分讨论Squish提供的用以执行测试的API,测试完会得到相应的结果。验证点也用这个测试API,更多的关于验证点的说明将在在17章中介绍。 比较两个值并将比较的结果写入测试日志,使用test.c...

Ⅰ.2.6.7 如何测试QListView (Qt 3)

这个部分介绍了如何验证一个Qt 3 list view widget(事实上是个tree widget)包含了我们所期望的items。 一种方法是遍历list view中的所有items,检查它们的每...

Ⅰ.2.8 如何做自动压力测试(Automatic Stress Testing)

这个部分解释了如何使用Squish为应用程序实现完全的自动化压力测试。 这里实现的压力测试的类型叫做“Monkey Testing”。这个名字来源于这样的想法:如果你有一屋子的猴子和打字机,不限制时间...

第Ⅰ部分 Squish教程

这篇Squish用户指南解释了所有Squish最常用的特性,提供了一些如何最好的使用Squish的示例。 该篇指南主要致力于Squish的脚本支持,不同的脚本语言支持,这里我们只给出Python的示例...

使用Squish自动化测试Qt APP心得

Squish可以自动化测试基于Qt的应用程序,经过一段时间学习,遇到一个很棘手的问题,就是Squish并不能检测QML中的MouseArea元素,每个可接受鼠标点击事件的item上都覆盖一个Mouse...

Ⅰ.2.7 如何测试Qt Application中的非Qt Widgets

支持Qt的Squish被设计用来支持Qt应用程序的Qt widgets自动化测试。然而,在一些平台,Qt 应用程序是使用Qt 和本地的widgets混合编译出来的,例如,在Windows上一个Qt应用...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)