SilkTest入门快打3-函数与原生Verify函数

好,让我们继续进入SilkTest入门快打 的天地。当初选择“快打” 这个词作为本系列文章的名字是觉得“快打”能够给人带来一种成就感、快感,用一个词形容就是“爽”,想想“快打旋风”,“恐龙快打”…
废话就说这么多,今天让我们来看看SilkTest 是如何使用函数的。我们接着上一讲“SilkTest入门快打系列2- 编写脚本测试 ”,还是使用它的frame 定义,现在新建一个测试脚本CalWithFunction.t ,在该脚本中创建一个测试用例CalWithFunction 和一个函数Cal123Plus123 ,

[-] testcase CalWithFunction()
[ ] 计算器.SetActive ()
[ ] 计算器.C.Click ()
[ ] String sResultValue = Cal123Plus123()    // 1
[-] if(val(sResultValue) == 246)
[ ] Print(“Passed: Expect 123+123=246, actually it is {sResultValue}”)
[-] else
[ ] raise 1, “Failed: Expect 123+123=246, actually it is {sResultValue}”
[ ]
[-] String Cal123Plus123()                    //2
[ ] 计算器.N1.Click ()
[ ] 计算器.N2.Click ()
[ ] 计算器.N3.Click ()
[ ] 计算器.Plus.Click ()
[ ] 计算器.N1.Click ()
[ ] 计算器.N2.Click ()
[ ] 计算器.N3.Click ()
[ ] 计算器.Equal.Click ()
[ ] String sResultValue = 计算器.CalResult.GetText() //3
[ ] return sResultValue                          //4

你发现这个新建的脚本和我们上一讲中的WriteScript.t 有什么不同了么?没错,CalWithFunction.t 和WriteScript.t 完成的工作完全相同,不同的是,我们把WriteScript.t 中一些代码抽取出来作为一个函数Cal123Plus123 ,然后在测试用例CalWithFunction 中调用它。也就是你现在看到标号为1 的那行代码,该行声明了一个字符串变量sResultValue ,并且把调用函数Cal123Plus123() 后产生的结果赋给sResultValue 。

然后再让我们看看行2 ,这一行声明了一个返回值为String 的函数Cal123Plus123 ,它的参数列表为空。在该函数中也定义了一个类型为String 的临时变量(行3 ),用它来保存结果栏上的值,在行4 里面将它返回给调用者。
OK ,先让我们运行一下这个case ,注意你的testcase 和函数Cal123Plus123 应该是同级的(同样的缩进位置),否则编译的时候会报错。怎么样,你的这个case 通过了么?

接下来,你是不是会觉得代码中这几行比较繁琐?
[-] if(val(sResultValue) == 246)
[ ] Print(“Passed: Expect 123+123=246, actually it is {sResultValue}”)
[-] else
[ ] raise 1, “Failed: Expect 123+123=246, actually it is {sResultValue}”

没问题,让我们用一个SilkTest 自带的函数Verify 来代替这四行代码。首先简单介绍一下Verify 这个函数。
在silktest 中,Verify 函数的使用频率非常高,它的作用就是进行对象实际值和预期值的比较,用来验证待测软件中的各种元素是否达到了预期的设计要求。
Verify 函数的原型是:Verify (aActual, aExpected [, sDesc])
其中aActual 是需要被验证的值,类型是AnyType 。
aExpected 是期望的值,也是验证的标准,验证是否成功就是以aActual 和aExpected 是否相等为标准,该参数的类型是AnyType 。
sDesc 可选参数,用来描述此次验证,类型是String 。
Verify 函数可以比较各种类型的数据,包括NULL 。如果aActual 和 aExpected 类型不同,函数将会抛出E_TYPE_MISMATCH 异常,如果两者类型相同值不同,函数将会抛出E_VERIFY 异常。这两种异常 如果不进行相应的处理的话,都会导致testcase 停止运行。

OK ,现在我们只需要将上面四行代码改成下面这一行代码即可。该行表示我们想要比较sResultValue 的数值是否和246 相等,如果不等就抛出异常并且打印提示信息。
Verify(val(sResultValue), 246, “Expect: 246, actually it is {sResultValue}”)

怎么样?你再运行一下,看看效果如何。

Leave a comment

请输入正确的验证码