2011-11-16 28 views
0

我需要幫助瞭解如何爲rspec測試中的每個示例生成唯一標識符。我爲什麼改變下面的代碼來工作?在rspec中生成示例ID

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

格式化您的紅寶石代碼爲stackoverflow;)手持式提示,將您的代碼粘貼到您的問題,然後選擇它,然後按Ctrl + K(或Mac OS上的CMD + K) – d11wtq

回答

0

在Rspec的每個實例應該完成一個句子,一個句子,你通常在describe塊封裝相關的測試開始。

我把這個從我自己的規格之一:

  • Redis::BigHash#[]應改爲現有值:

    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#[]應該允許查找多個鍵,返回一個數組。

只是簡單的英語句子,描述你想要的行爲。

+1

友好nit-pick,恕我直言,如果你省略「應該」,例如:'Redis :: BigHash#[]讀取一個現有值'。我想知道指定的行爲,而不是假想的行爲:) – d11wtq

2

查看ffaker用於在測試中生成隨機值。它可以生成真實的隨機數據,如電子郵件地址,IP地址,電話號碼,人名等,但它也有生成隨機字符串和數字的基本方法。

Faker.numerify("###-###-###") 
# => 123-456-789 

或者,您可以使用stdlib的SecureRandom