2011-06-19 45 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')''怎么样? –

相关问题