我需要帮助找出如何为我的rspec测试中的每个示例生成唯一标识符。如果以下代码有效,我该怎么办?
describe 'Verify that my server' do
@x = 1
it "does something " + @x.to_s do
2.should==2
end
it "does something else " + @x.to_s do
2.should==2
end
after(:each) do
@x+=1
end
end
答案 0 :(得分:2)
看看ffaker在测试中生成随机值。它可以生成真实的随机数据,如电子邮件地址,IP地址,电话号码,人名等,但它也有生成随机字母和数字字符串的基本方法。
Faker.numerify("###-###-###")
# => 123-456-789
或者,您可以使用stdlib的SecureRandom。
答案 1 :(得分:0)
你的Rspec中的每个例子都应该完成一个句子,你通常在describe
块中开始一个句子来封装相关的测试。
我从我自己的一个规范中得到了这个:
describe Redis::BigHash do
before :each do
@hash = Redis::BigHash.new
@hash[:foo] = "bar"
@hash[:yin] = "yang"
end
describe "#[]" do
it "should read an existing value" do
@hash[:foo].should == "bar"
end
it "should get nil for a value that doesn't exist" do
@hash[:bad_key].should be_nil
end
it "should allow lookup of multiple keys, returning an array" do
@hash[:foo, :yin, :bad_key].should == ["bar", "yang", nil]
end
end
end
你最终得到的句子如下:
Redis::BigHash#[]
应该读取现有值。Redis::BigHash#[]
应该为nil。Redis::BigHash#[]
应该允许查找多个键,返回一个数组。简单的英语句子描述了你想要的行为。