Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial 
   
    Lisa Rossiter
3,630 PointsError with testing friend, and user_firendship
Error
admins-imac:ujunto admin$ ruby -I test test/controllers/user_friendships_controller_test.rb
Run options: --seed 51952
# Running tests:
..........FF..
Finished tests in 0.277235s, 50.4987 tests/s, 75.7480 assertions/s.
  1) Failure:
UserFriendshipsControllerTest#test_: when logged in with a valid friend_id should assign a friend object.  [test/controllers/user_friendships_controller_test.rb:92]:
--- expected
+++ actual
@@ -1 +1 @@
-#<User id: 830138774, first_name: "sam", last_name: "toms", profile_name: "sup", email: "modernoozedesign2@gmail.com", encrypted_password: "password1", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2014-04-26 13:08:15", updated_at: "2014-04-26 13:08:15">
+nil
  2) Failure:
UserFriendshipsControllerTest#test_: when logged in with a valid friend_id should assign a user_friendship object.  [test/controllers/user_friendships_controller_test.rb:98]:
--- expected
+++ actual
@@ -1 +1 @@
-#<User id: 902541635, first_name: "Bob", last_name: "Barker", profile_name: "bobb", email: "bob.barker@example.com", encrypted_password: "password1", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2014-04-26 13:08:15", updated_at: "2014-04-26 13:08:15">
+nil
14 tests, 21 assertions, 2 failures, 0 errors, 0 skips
admins-imac:ujunto admin$ 
Tests
context "with a valid friend_id" do
      setup do
        post :create, friend_id: users(:john).id
      end
      should "assign a friend object" do
        assert_equal users(:john), assigns(:friend)
      end
      should "assign a user_friendship object" do
        assert assigns(:user_friendship)
        assert_equal users(:john), assigns(:user_friendship).user
        assert_equal users(:bob), assigns(:user_friendship).friend
      end
    end
class UserFriendshipsController < ApplicationController
  before_filter :authenticate_user!, only: [:new]
  def new
    if params[:friend_id]
      @friend = User.where(profile_name: params[:friend_id]).first
      raise ActiveRecord::RecordNotFound if @friend.nil?
      @user_friendship = current_user.user_friendships.new(friend: @friend)
    else
      flash[:error] = "Friend required"
    end
    rescue ActiveRecord::RecordNotFound
      render file: 'public/404', status: :not_found
  end
  def create
    if params[:friend_id]
      @friend = User.where(profile_name: params[:friend_id]).first
      @user_friendship = current_user.user_friendships.new(friend: @friend)
    else
        flash[:error] = "Friend required"
        redirect_to root_path
    end
  end
end
Fixtures
sam:
  first_name: "sam"
  last_name: "toms"
  profile_name: "tomzie"
  email: "modernoozedesign@gmail.com"
john:
  first_name: "sam"
  last_name: "toms"
  profile_name: "sup"
  email: "modernoozedesign2@gmail.com"
  encrypted_password: "password1"
bob:
  first_name: "Bob"
  last_name: "Barker"
  profile_name: "bobb"
  email: "bob.barker@example.com"
  encrypted_password: "password1"
1 Answer
 
    Jason Seifer
Treehouse Guest TeacherHey Lisa Rossiter in your test try changing the following:
    post :create, friend_id: users(:john).id
To:
    post :create, friend_id: users(:john).profile_name
That's what it looks for in the controllers so it should fix it.