2011-05-25 50 views
4

私はRuby/Rails/RSpecの新機能です。うまくいけば、これはダム/簡単な質問です。私は現在、現在のプロジェット用のRSpecテストを書くことに取り組んでいます。私が現在行っていることは、ページに最後のログイン日時を表示するためのテストを書くことです。RSpecの正規表現を使用しようとしていますhave_selector行

私がしたいのは、日付/時刻が必要な形式で表示されているかどうかだけです。私は正規表現を使って書式をチェックしています。私はエラー -

1) LayoutLinks when signed in should display last login date and time 
Failure/Error: response.should have_selector("date_time", :content => date_time_regex) 
NoMethodError: 
    undefined method `include?' for #<Regexp:0xef2a40> 
# ./layout_links_spec.rb:60:in `block (3 levels) in <top (required)>' 
次取得テストを実行しようとすると

it "should display last login date and time" do 
    date_time_regex = /Last Login: [0-9][0-9]-[0-9][0-9]-[0-9][0-9], [0-9][0-9]:[0-9[0-9]]/ 
    visit root_path 
    response.should have_selector("date_time", :content => date_time_regex) 
end 

- 私はそのようにのような行を(醜い正規表現を言い訳してください)have_selectorべきで使用しようとすると、正規表現を作成しています

正規表現を渡すことができないようですが、次に何をすべきかわかりません。助けをあらかじめありがとう!

答えて

7
date_time_regex = /Last Login: [0-9][0-9]-[0-9][0-9]-[0-9][0-9], [0-9][0-9]:[0-9[0-9]]/ 

response.should have_selector('data_time') do |data_time| 
    data_time.should contain(date_time_regex) 
end 

か...あなたが\d代わりの[0-9]を行うことができるということです役立ちます

response.should have_selector('data_time') do |data_time| 
    data_time.should =~ date_time_regex 
end 
+0

まだよく分からない私は「response.should =〜date_time_regex」などを使用していますか? – Will

+0

心配しないで、この作業をしました - ありがとう! – Will

4

一つ。だから、あなたは

/Last Login: \d\d-\d\d-\d\d, \d\d:\d\d/ 

となり、少し読みやすくなります。

関連する問題