如何在不播种数据的情况下测试RESTful数据库调用?

时间:2013-12-09 19:56:16

标签: ruby-on-rails angularjs rspec capybara poltergeist

我有一个下拉框,使用数据库中的数据填充(通过Angular)。

我试图用Capybara和Poltergeist测试它:

        select('San Francisco', from: "user_region")

当测试数据库以干净的DB启动时,无法加载数据库中的旧金山选项。如果我没有数据库,我应该如何填充下拉框?

一个想法是从seed.rb运行db:seed,但是当我运行测试时,我宁愿依赖更少的假设。有没有办法使用像Factory Girl这样的东西?

谢谢,

1 个答案:

答案 0 :(得分:0)

例如,如果您有以下水豚测试用例,请使用背景块设置测试所需的数据

feature "Signing in" do   
  background do
    Option.create(:name => "San Francisco", :value => "something") #you could also use FactoryGirl.create(:option)   
  end

  scenario "Signing in with correct credentials" do
    visit '/sessions/new'
    fill_in 'Login', :with => 'user@example.com'
    fill_in 'Password', :with => 'caplin'
    click_link 'Sign in'
    expect(page).to have_content 'Success'
  end 
end

如果你不知道它,那么这是link for factory_girl。它在为各种测试设置数据时非常方便。