我刚开始使用factory_girl,我尝试使用:
user = FactoryGirl.create(:user)
但这似乎行不通。 这是我的代码:
RSpec.feature "Send a message" do
scenario "Staff can send a message" do
visit "/"
group = Group.create!(name: "Group A")
user = FactoryGirl.create(:user)
fill_in "Email", with: "staff@example.com"
fill_in "Password", with: "password"
click_button "Sign in"
person = Person.create!(groups: [group], phone_number: "+161655555555")
message = Message.create(body: "Test Message", group_ids: [group.id])
fill_in "Enter a Message:", with: "Test Message"
check "message_group_#{group.id}"
click_button "Send Message"
expect(page).to have_content("Messages on their way!")
expect(page).to_not have_content("Body can't be blank")
expect(page).to_not have_content("Group ids can't be blank")
end
这是我的工厂:
FactoryGirl.define do
factory :user do
email "cam@example.com"
password "password"
end
end
简单吧?可能出现什么问题?
user = FactoryGirl.create(:user)
fill_in "Email", with: user.email
fill_in "Password", with: user.password
此外,如果您使用 devise,则可以将下一行添加到spec/support/warden.rb
并使用方法login_as(user)
而不是提交登录表单。
RSpec.configure do |config|
config.include Warden::Test::Helpers, type: :feature
config.include Warden::Test::Helpers, type: :request
config.before :suite do
Warden.test_mode!
end
config.after :each do
Warden.test_reset!
end
end