2011-06-19 81 views
0

我一直在使用webrat和我的rails 3.0.7項目,並且一直在嘗試編寫一個使用正則表達式的測試。它應該失敗,但if語句似乎會破壞結果。當'if'語句被使用時,Webrat會產生意想不到的結果

it "should have 'microposts' if 0 posted" do 
     visit root_path 
     response.should have_selector('span.microposts') do |span| 
     if span =~ /\d/ 
      span.should contain('hello') 
     end 
     end 
    end 

該測試試圖確認測試,但在使用'if'語句時它仍然成功。它試圖匹配內容'0 microposts'。

當我更換「如果」語句的使用這些行:

response.should have_selector('span.microposts') do |counter| 
    counter.should contain(/hello/) 
    end 

我讓測試最終失敗,就像它應該是,但我沒有得到驗證的數量內容前面的內容像我上面想要的那樣。

是否webrat不是手如果語句好,或者我做錯了什麼?

在此先感謝!

回答

0

看來你錯過了end,但我不明白那是不會彈的。

it "should have 'microposts' if 0 posted" do 
    visit root_path 
    response.should have_selector('span.microposts') do |span| 
    if span =~ /\d/ 
     span.should contain('hello') 
    end 
    end 
end 
+0

我其實在我的代碼中有這樣的結果,但忘了在這裏包括它。剛剛更新了這個問題。你認爲網頁可能不喜歡超過1層? – Flashuni

+0

'span.should span =〜/ \ d/&& contains('hello')''怎麼樣? –

相關問題