2012-03-28 12 views
0

フォームビルダをレールから利用できるRspecテストを実装する方法を知っている人がいるのでしょうか。ここに私のヘルパーにあるものである:フォームビルダ要素を使用するメソッドをRSpecでテストする

def render_radio_buttons(answer, label) 
    check_these = [] 
    field = '<div class="radio">' 
     label.split(',').each do |option| 
     if check_these.include?(option.strip) 
      field += answer.radio_button :body, option.strip, checked = true 
     else 
      field += answer.radio_button :body, option.strip 
     end 
     field += label_tag option.strip 
     end 
    field += '</div>' 
    end 

この方法は、複数のカンマで区切られたラベルが含まれているデータベースからラベルフィールドを引っ張っています。この場合の答えはフォームビルダfです。フォームビルダーが必要なので、このようなテストをどうやって行うのですか?

これを実装する方法について、より良い方法がある場合は、私が知りたいことがあります!助けることができる人のためにありがとう!

+0

あなたは嘲笑/期待を見ましたか? 'answer'は' radio_button'メソッドを取ることができるテストダブルであり、あなたはそれが正しい引数でX回呼び出されると期待できます。それから、古い文字列を返し、 'field'文字列をテストすることができます。 '.radio_button'が何を返すのかは、Railsがそれを世話しているので、本当に気にしません。どのように*あなたがそれを使用しているかもっと心配してください。 – MrDanA

答えて

1

私はカピバラを使ってフォームをテストするだけです。

カピバラはあなたが本当のユーザーがあなたのアプリと対話する方法をシミュレートすることによって、Railsとラックのアプリケーションをテストするのに役立ちます。テストを実行しているドライバーについては不自然で、Rack :: TestとSeleniumのサポートが組み込まれています.WebKitは外部の宝石を通してサポートされています。

describe "the signup process", :type => :request do 
    before :each do 
    User.make(:email => '[email protected]', :password => 'caplin') 
    end 

    it "signs me in" do 
    within("#session") do 
     fill_in 'Login', :with => '[email protected]' 
     fill_in 'Password', :with => 'password' 
    end 
    click_link 'Sign in' 
    end 
end 
関連する問題