Rspec 是Ruby社区的主流测试框架,简单玩了一下,觉得有几个特性是十分值得借鉴的
  树状的用例组织结构
  我们知道很多测试用例工具,例如: testlink ,其测试用例组织是树状的,但是,我之前接触到的测试框架,例如: TestNg ,它是无法支持这种用例组织结构的
  Rspec却可以!
  简单的讲,Rspec可以仅由 describe与it 两种语句块构成
  首先声明,Rspec是基于 BDD 测试思想的,并没有传统意义上的 测试用例(testcase) 的概念
  describe可以层层嵌套describe及it,从而构成树状结构
  it语句块是这棵树的叶子节点,功能上接近于测试用例这个概念,用例断言(Assertion)一般在这里面
  还是看示例吧
  先看代码,描述的是一盏飞利浦台灯在出厂之路上所经历的种种测试

 

# encoding: utf-8
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 "--- 结束本次测试 --- "
end
it "冒烟测试(插电源 - 开开关 - 灯亮了)" do
echo '插电源 - 开开关 - 灯亮了'
end
# describe可以与it语句块并列 例如 "冒烟测试" 与 "正向测试"
# describe可以层层嵌套 从测试用例组织的角度讲 是构成了一个树状结构
describe '正向测试' do
describe '发光性' do
# it语句块接近于传统意义上的testcase
it '亮度可以调节' do
echo 'min-1-2-3-4-5-max'
end
it '大亮度不得超过10000' do
echo 'no more than 1w'
end
it "只能发射白色光" do
echo 'white light'
end
end
describe '节能性' do
it "符合节能标准" do
echo '符合国标'
end
it "每小时耗电不多于0.000001度" do
echo '0.000001kwh'
end
end
end