Ruby测试框架Rspec初探

发表于:2013-12-13 11:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:尘泥(侃)    来源:51Testing软件测试网博客

   describe '异常测试' do
# 这里的before hook就只能作用在'异常测试'describe之内了
before(:each) do
echo '--- 准备一盏全新台灯 ---'
end
describe '破坏性测试' do
it '榔头砸不坏' do
echo '榔头砸不坏'
end
it '泡水里不短路' do
echo '泡水里不短路'
end
end
describe '耐久性测试' do
it '连续使用七天七夜不灭' do
echo '连续使用七天七夜不灭'
end
it '风吹雨打也不能阻止我发光' do
# 对于未完成的用例 可以先把描述写下来 具体的用例里面使用pending关键字占位
pending '这个用例待完成'
end
end
end
end
  再看一下运行结果报表,两相对照,用例的树状结构一目了然
  用例命名简单化,且有实际含义
  之前写用例,用例命名是一个十分关键但也很头疼的工作,大家懂得
  而Rspec本质上是一门 DSL (Domain Specific Language),实际上,从上面的示例代码和运行结果截屏中大家已经可以看到,在Rspec中是无须给测试用例命名的,或者说,用例的命名可以非常书面化,一般就是用例意图的简单描述(即:describe及it关键字后面跟着的描述性语句)
  支持未完成的用例先占位
  不解释,还是看图
  对于未完成的用例,可以先把描述写下来,具体的用例步骤里面使用pending关键字占位
  it '风吹雨打也不能阻止我发光' do
  # 对于未完成的用例 可以先把描述写下来 具体的用例里面使用pending关键字占位
  pending '这个用例待完成'
  end
  反映在用例报表中,这个用例就被标志为黄色了 树状的用例组织结构/用例命名简单化/支持未完成的用例先占位,这三个特性使得使用Rspec编写测试用例时,思路可以非常自由,开阔,很像是在写 markdown ,来不及的地方,也可以先使用 pending 占位
  写完以后,跑一遍用例,生成的html报表可读性很强,可以直接用于策划,开发,测试之间的沟通(必杀技,有木有!)
  其它不错的特性
  Rspec是一门DSL,但它仍旧支持在用例中参杂原生Ruby代码,如下所示
  Rspec与TestNG/JUnit一样,也有类似before/after的hook(如下所示),其作用范围是当前的describe
  由于describe允许层层嵌套,因此,Rspec中的before/after的作用域也是层层嵌套的,比之TestNG的Before/After,灵活性大大超过
  describe 'PHILIPS台灯 - 出厂质检' do
# Rspec是一门测试DSL 但其中可以夹杂原生Ruby代码 比如这个echo()函数
def echo(input)
puts input
end
# Rspec与TestNG/JUnit一样 也有类似before/after的hook
# 其作用范围为其所在的describe
# before在it语句块之前执行
before(:each) do
echo '--- 开始本次测试 ---'
end
# after在it语句块之后执行
after(:each) do
echo "--- 结束本次测试 ---\n\n"
end
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号