这一讲,我们将在SilkTest 中使用类和对象。众所周知,面向对象的程序比面向过程的程序结构清晰,易于维护。所以对于大型的测试框架,我们应该尽可能使用面向对象的语言来编写。SilkTest 所使用的4Test 脚本语言是一个非常面向对象的编程语言,它提供了绝大多数面向对象的机制,使用它能够轻松构建OO 的脚本。
下面我们希望能够用SilkTest 来操作计算器,先按数字1 ,然后打印这时结果框中的数值,然后再按键C 清零,再次打印结果框中的数值。为此,我们新建一个脚本Cal.t ,它的内容如下:
[-] winclass Calculator //1
[ ] String sResult //2
[-] Void ClearResult() //3
[ ] 计算器.C.Click() //4
[-] void GetResult() //5
[ ] sResult = 计算器.CalResult.GetText() //6
[-] Void ClickNum1() //7
[ ] 计算器.N1.Click() //8 [ ] window Calculator Cal //10 [-] testcase CalSetAndClear() //11
[ ] 计算器.SetActive() //12
[ ] Cal.ClickNum1() //13
[ ] Cal.GetResult() //14
[ ] Print(Cal.sResult) //15
[ ] Cal.ClearResult() //16
[ ] Cal.GetResult() //17
[ ] Print(Cal.sResult) //18
各行代码的意义如下:
行1 :用关键字winclass 定义一个类Calculator (注意定义对象用winclass 关键字)
行2 :定义Calculator 类中的一个String 类型的数据成员sResult ,用它来保存结果框的值
行3/4: 定义Calculator 类的一个成员函数ClearResult ,它的返回值是void ,即不返回值。它的职责就是点一下计算器的C键,将结果清零
行5/6: 定义Calculator 类的一个成员函数GetResult ,它的返回值是void ,即不返回值。它的职责就是获取计算器的结果框的值,将其赋给成员变量GetResult
行7/8: 定义Calculator 类的一个成员函数ClickNum1 ,它的返回值是void ,即不返回值。它的职责就是点一下计算器的数字键1
行10 :在类的外面,我们定义了一个对象Cal ,它的类是我们刚刚定义的Calculator 类( 注意定义对象用window 关键字)
行11 :开始一个testcase
行12-18 :激活计算器,点击数字键1 ,得到计算器的结果值,打印该值,将计算器清零,再次获取结果值,然后打印该值。
执行一下,你的case 最终应该打印两行,分别是
1.
0.
|