2011-06-19 11 views
0

webratをmy rail 3.0.7プロジェクトで使用していて、正規表現を使用するテストを作成しようとしています。失敗するはずですが、if文が結果を破損しているようです。 Webratが 'if'文を使用したときに予期しない結果が発生しました

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 microposts'に一致しようとしています。

私は「もし」ステートメントの代わりにこれらの行を使用する場合:

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

私はそれをすることになっているように、テストが最終的に失敗してもらうが、その後私は数を確認するために得ることはありません私は上にしようとしていたようなスパンの内側のコンテンツの前面。

文章をうまく扱っていないのですか、何か間違っていますか?

ありがとうございます!

答えて

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')'はどうですか? –

関連する問題