2012-03-28 47 views
0

我想知道是否有人对如何实现可以利用Rails表单生成器的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 2012-03-28 17:06:43

回答

1

我只是测试使用水豚的形式。

水豚帮助您通过模拟如何真正的用户将与应用互动测试Rails和机架应用。对于运行测试的驱动程序是不可知的,并且内置Rack :: Test和Selenium支持。WebKit通过外部gem支持。

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