• SilkTest天龙八部系列5-类的属性


    SilkTest的面向对象机制让用户可以为类定义属性,用property语句实现。除此以外用户在类中还可以定义成员变量和不可变的setting属性。也就是是说Silktest类中可以有以下三种属性/变量被使用到:
    属性(用property申明)
    成员变量
    属性(用setting声明)

     

    用property语句定义的属性可以让用户方便地使用=号来设置和获取类的某些属性,这里的属性是指逻辑上的一些属性,用来表现类的某些特征,这些特征可能是动态变化的。例如在某个时间点,一个控件所包含的子控件个数(我们可以通过一个循环来遍历该控件来得到子控件的个数)又或者是一个页面上当前得到焦点的控件名等等。

    成员变量一般作为类的计算元素,或者是中间结果持有者,一般不用来直接表示复杂的逻辑内容。

    至于setting属性可以对类的一些系统属性进行控制,例如,一个类是否继承使用父类的tag,又或者是使用哪些父类的tag.

    值得注意的是property的声明是通过set和get两个函数实现的,所谓的逻辑也是在这两个函数中实现的。其中set只能有一个参数并且返回值是void,而get不能有参数,但是必须有返回值。set和get至少有一个要出现在property的声明中。

    另外setting的限制是只能在类中赋值,并且是不可更改的。

    下面是一个可以运行的例子: 最后一行的注释打开后会导致无法运行

    [-] winclass DemoDialog
    [ ] Integer iZ = 30
    [-] property iZPos
    [-] void Set(integer i)
    [ ] iZ = i
    [-] integer Get()
    [ ] return iZ
    [ ] setting iXPos = 10
    [ ] setting iYPos = 20
    [ ]
    [ ] window DemoDialog dd
    [ ]
    [-] testcase property_test()
    [ ] // test setting
    [ ] Print(dd.iXPos)
    [ ] Print(dd.iYPos)
    [ ] // test member variable
    [ ] Print(dd.iZ)
    [ ] // test property
    [ ] dd.iZPos = 50
    [ ] Integer iTemp = dd.iZPos
    [ ] Print(iTemp)
    [ ] // test member variable for class
    [ ] Print(DemoDialog().iZPos)
    [ ] Print(DemoDialog().iZ)
    [ ] // change setting is not allowed
    [ ] // dd.iXPos = 90

  • 相关阅读:
    Dash panel 里面添加启动项
    Ubuntu安装chrome
    多核CPU服务器 tomcat配置
    Iptux 信使 自动缩小问题 ubuntu12.04
    Html5 上传文件
    ubuntu 12.04 字体设置
    Ubuntu12.04 Eclipse 背景颜色 修改
    一些需要禁用的PHP危险函数
    Oracle 修改带数据的字段类型
    oracle 中同一个字段1 ,字段追加,字段部分数据删除
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3295295.html
Copyright © 2020-2023  润新知