User.make和User.new有什么区别?

时间:2015-06-09 22:12:44

标签: ruby-on-rails unit-testing rspec capybara

在Capybara docs中,它有

describe "the signin process", :type => :feature do
  before :each do
    User.make(:email => 'user@example.com', :password => 'password')
  end    
  it "signs me in" do
    visit '/sessions/new'
    within("#session") do
      fill_in 'Email', :with => 'user@example.com'
      fill_in 'Password', :with => 'password'
    end
    click_button 'Sign in'
    expect(page).to have_content 'Success'
  end
end

我的问题是User.make和User.create之间有什么区别;从这个问题来看: docs User.make是一种Machnist gem特定方法。为什么Capybara会在其文档中包含它而不仅仅是用户User.create,它对于测试规范是否至关重要或真正有用?

1 个答案:

答案 0 :(得分:1)

Machinist和FactoryGirl等库允许您使用具有合理默认值的模板创建实体,因此您只需指定与测试相关的属性。在测试中使用它们是很常见的,作为灯具的替代品。