Ⅰ.2.6 如何测试Qt Widgets

来源:互联网 发布:sybase数据库 编辑:程序博客网 时间:2024/06/05 15:11

这个部分我们看到Squish API使检查单个的widgets值和状态变得更简单,所以我们可以测试应用程序的业务规则。

正如我们在教程中看到的,我们可以使用Squish的记录功能来创建测试。然而,通常对于修改测试或者完全从零开始创建测试是有用的,特别是当我们测试包含多个widgets的业务规则时。

一般情况下,没有必要测试一个widget的标准行为。例如,如果一个未被选取的含有两个值的checkbox在被点击后未被选取,这是工具包的bug而不是我们的bug。如果这种情况发生了,我们可能需要写一个工作区(为它写个测试),但是正常情况下我们不会为了检查一个widget的行为是否如其文档所述而写测试。另一方面,我们确实想测试的内容是我们的应用程序是否提供了我们打算编译进去的业务规则。一些测试关心单个独立的部件——例如,测试一个combox包含了合适的项;其他的测试关心部件间的依赖和交互——例如如果我们有一组“付款方法”的radio   buttons,我们想测试如果“cash”radio button“被选择了,check和信用卡相关的widgets都被隐藏。

我们是否测试单个widgets或者widget间的依赖关系和交互,我们必须首先能识别出我们想测试的widgets。一旦识别到我们可以验证它们含有的值并且这些值的状态和我们预期的一致。识别出一个widget的一种方法是记录一个包含使用该widget的test,然后查看Squish这个widget使用了什么名字。但是识别一个widget最容易的方法是使用Spy工具。

这个部分的目的是阐释和展示如何访问Qt中各种widgets以及使用这些widgets如何执行常用的操作——例如获取和设置它们的属性——使用Squish支持的一切脚本语言。

完成了这个部分以后,你应该会访问Qt widgets,收集这些Qt widgets的数据,以及执行测试是否与期望值一致。这章节覆盖的准则应用于所有的Qt widgets,因此即使你需要测试一个这里没有特别提到的widget,这么做是应该没问题的。

注册例子 AUTs:

第一次使用该教程中提到的脚例子时,需要将应用程序注册到squishserver.测试套件将知道你使用的是哪个应用程序,但是在注册之前,squishserver中没有对应应用程序的记录。最容易的实现的方法是使用”Edit->Server Settings->Manage AUTs“。注意到为自己的应用程序记录测试时,自动注册,因此这里只适用于Squish提供的AUTs例子。

为了在代码中测试和验证一个widget及其属性或者内容,首先我们需要在测试脚本中访问widget。为了获取一个widget的引用,使用waitForObject函数。这个函数找到给出名字的widget,返回一个应用。为了这个目的,我们需要知道要测试的widget的名字,我们可以使用Spy工具获取名字,然后将对象添加到Object Map中(这样Squish就会记住它),然后拷贝对象的名字(最好是它的symbolic  name)到剪贴板以备粘贴到我们的测试中。如果我们需要收集许多widgets的名字,在确保我们在手写的测试脚本中访问每个我们想验证的widget期间,有可能更快更容易的记录虚拟测试。这会导致Squish将所有相关的名字添加到Object Map中,我们可以拷贝和粘贴该Object Map到我们的代码中。

2.6.1 如何测试Widget States 和Properties

2.6.2 如何测试Stateful 和Single-Valued Widgets(Qt  4)

2.6.3 如何测试Item Views、Item Widgets 和 Models 中的 Items (Qt 4)

2.6.4 如何测试Table Widgets,以及使用外部数据文件(Qt 4)

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

2.6.6 如何测试Graphics Views、Graphics Scenes 和 Graphics Items (Qt 4)

2.6.7 如何测试QListView (Qt 3)

2.6.8 如何测试QTable (Qt 3)



0 0