关于tcltest的返回结果
来源:互联网 发布:日本老龄化 知乎 编辑:程序博客网 时间:2024/05/18 03:06
开源的tcltest 给我们提供了一个很好的自动化测试框架。 这对进行自动化测试的人来说不能不说是一个福音,在这个框架下我们可以做出很多适合我们自己的测试用例。 下面就解释一下body部分的返回值在整个test处理中的重要作用。 先看下面的一段脚本 package require tcltest #tcltest init ,初始化一些值,这个是很必要的 tcltest::init namespace eval ::aaa::bbb { namespace import ::tcltest::* test Start { Test this function } -constraints { } -setup { puts "setup part" } -body { puts "body part" # set result 1 # return $result return 1 } -cleanup { } -result "1" } 这是一段很简单的测试脚本。 test 函数用body中return的值和最后的result中的值进行对比来判断这个test是否通过。 在这里,我们设定result 为0,然后将这个值return运行结果: D:/>tclsh test.tcl setup part body part ==== Start Test this function FAILED ==== Contents of test case: puts "body part" set result 0 return $result ==== Log Records : ---- Result was: 0 ---- Result should have been (exact matching): 1 ==== Start FAILED 我们可以看到,两个值不匹配,这样整个test就会认为失败。显示为:Start FAILED 我们进行如下两次试验 1.没有return值 。我们将上面脚本中的return语句注释掉,再执行一下,结果如下: D:/>tclsh test.tcl setup part body part ==== Start Test this function FAILED ==== Contents of test case: puts "body part" set result 0 #return $result ==== Log Records : ---- Result was: 0 ---- Result should have been (exact matching): 1 ==== Start FAILED 我们可以看到,将return注释掉之后,依然返回failed. 2.我们将result 设置为1.执行如下: D:/>tclsh test.tcl D:/>tclsh test.tcl ---- Start start "Test this function" setup part body part ++++ Start PASSED 这个case居然显示通过了。 3.如果直接return 1的结果会怎么样?运行结果如下: D:/>tclsh test.tcl ---- Start start "Test this function" setup part body part ++++ Start PASSED 结果显示这个case也是通过了。 总结: 从上面的试验我们可以看出,tcltest中的test函数可以做到在body中返回的值和我们期望的值进行比较来生成测试结果的功能,使用十分灵活。在有return语句的情况下,test函数将会用return的值和result的值进行比较来判断是否通过。如果没有提供return语句,那么他就会body部分最后一个操作返回值作为body的返回值,用此值与result的期望值进行比较来判断结果。 这固然是一种很灵活的用法,但是很容易造成阅读者和维护人员的混淆,我们在脚本开发中不提倡这种返回方法,还是“老老实实”用return语句结束的好。
- 关于tcltest的返回结果
- ORACLE关于返回结果集的问题
- 关于JavaScript的 childNodes 方法的返回结果
- 关于EXT用json返回结果分页的问题
- 关于SQL2008【没有返回结果集】的解决方法 .
- 关于Fragment跳转到Activity 获取返回结果的处理
- 关于Action返回结果类型的事儿(上)
- 关于Action返回结果类型的事儿(下)
- 关于微信微信 onresp 收不到返回的结果
- 关于使用Volley网络请求无返回结果的解决办法
- 关于try和finally执行到的返回结果
- 指针的返回结果
- 关于如何判断 grep 返回结果
- 《NGNc,“中断”返回的结果》
- php返回json的结果
- struts2返回结果的类型
- DeviceIoControl的返回结果判断
- acm的常见返回结果
- Spring jar 包详解
- Avalon总线
- .NET体系结构
- C#.NET中的DateTime类型和DateTimeKind枚举
- Asp.net图片上传access数据库以及图片显示;点击图片以后显示[图片,以及图片的
- 关于tcltest的返回结果
- 当文字过多时,显示省略号
- net上传图片(取一张最新图片)
- WWF中宿主程序(即调用工作流的程序)和工作流内部交换数据的几种方法(情况)。
- 关于checkboxtree选中的一个小例子非常使用
- C#中使用反射动态加载和卸载DLL
- oracle和操作系统冲突的问题。
- Sql Server 基本函数
- 又遇Trojan.PSW.Win32.QQPass,Trojan.PSW.Win32.GameOL等1