Я не могу пройти 3 теста. Вот ошибки:
Failures:
1) Users micropost associations should have a micropost attribute
Failure/Error: @mp1 = Factory(:micropost, :user => @user, :created_at => 1.day.ago)
Validation failed: User can't be blank
# ./spec/requests/users_spec.rb:69:in `block (3 levels) in <top (required)>'
2) Users micropost associations should have the right microposts in the right order
Failure/Error: @mp1 = Factory(:micropost, :user => @user, :created_at => 1.day.ago)
Validation failed: User can't be blank
# ./spec/requests/users_spec.rb:69:in `block (3 levels) in <top (required)>'
3) Users micropost associations should destroy associated microposts
Failure/Error: @mp1 = Factory(:micropost, :user => @user, :created_at => 1.day.ago)
Validation failed: User can't be blank
# ./spec/requests/users_spec.rb:69:in `block (3 levels) in <top (required)>'
Будем весьма благодарны за любые мысли о том, где искать. Я опубликую любые примеры кода, которые вам понадобятся, чтобы помочь мне разобраться.
Большое спасибо!
В соответствии с запросом, вот user_spec.rb
require 'spec_helper'
describe "Users" do
describe "signup" do
describe "failure" do
it "should not make a new user" do
lambda do
visit signup_path
fill_in "Name", :with => ""
fill_in "Email", :with => ""
fill_in "Password", :with => ""
fill_in "Confirmation", :with => ""
click_button
response.should render_template('users/new')
response.should have_selector("div#error_explanation")
end.should_not change(User, :count)
end
end
describe "success" do
it "should make a new user" do
lambda do
visit signup_path
fill_in "Name", :with => "Example User"
fill_in "Email", :with => "user@example.com"
fill_in "Password", :with => "foobar"
fill_in "Confirmation", :with => "foobar"
click_button
response.should have_selector("div.flash.success", :content => "Welcome")
response.should render_template('users/show')
end.should change(User, :count).by(1)
end
end
end
describe "sign in/out" do
describe "failure" do
it "should not sign the user in" do
visit signin_path
fill_in :email, :with => ""
fill_in :password, :with => ""
click_button
response.should have_selector("div.flash.error", :content => "Invalid")
end
end
describe "success" do
it "should sign a user in and out" do
user = Factory(:user)
visit signin_path
fill_in :email, :with => user.email
fill_in :password, :with => user.password
click_button
controller.should be_signed_in
click_link "Sign out"
controller.should_not be_signed_in
end
end
end
describe "micropost associations" do
before(:each) do
@user = User.create(@attr)
@mp1 = Factory(:micropost, :user => @user, :created_at => 1.day.ago)
@mp2 = Factory(:micropost, :user => @user, :created_at => 1.hour.ago)
end
it "should have a micropost attribute" do
@user.should respond_to(:microposts)
end
it "should have the right microposts in the right order" do
@user.microposts.should == [@mp2, @mp1]
end
it "should destroy associated microposts" do
@user.destroy
[@mp1, @mp2].each do |micropost|
Micropost.find_by_id(micropost.id).should be_nil
end
end
end
end
И заводы.rb:
Factory.define :user do |user|
user.name "JD Skinner"
user.email "jd.skinner@me.com"
user.password "password"
user.password_confirmation "password"
end
Factory.sequence :email do |n|
"person-#{n}@example.com"
end
Factory.define :micropost do |micropost|
micropost.content "foo bar"
micropost.association :user
end
Спасибо большое !!
-Kagi