mardi 19 avril 2016

Ruby on Rails: test 10.21 on tutorial

Test 10.22 is supposed to be green but it is red.I added create method in user_controller and deleted another create method that was here. Is it possible create error/or maybe another reasons for error? How to fix this .thanks.

errors and files related as below:

ERROR["test_invalid_signup_information", UsersSignupTest, 2016-03-23 16:43:47 +0000] test_invalid_signup_information#UsersSignupTest (1458751427.59s) AbstractController::ActionNotFound: AbstractController::ActionNotFound: The action 'create' could not be found for UsersController test/integration/users_signup_test.rb:8:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:7:inblock in ' test/integration/users_signup_test.rb:8:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:7:inblock in '

ERROR["test_valid_signup_information", UsersSignupTest, 2016-03-23 16:43:47 +0000] test_valid_signup_information#UsersSignupTest (1458751427.61s) AbstractController::ActionNotFound: AbstractController::ActionNotFound: The action 'create' could not be found for UsersController test/integration/users_signup_test.rb:21:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:20:inblock in ' test/integration/users_signup_test.rb:21:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:20:inblock in ' 38/38: [=====================================================] 100% Time: 00:00:05, Time: 00:00:05

Finished in 5.52461s 38 tests, 153 assertions, 0 failures, 2 errors, 0 skips

//test/integration/users_signup_test.rb

equire 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

test "invalid signup information" do

get signup_path

assert_no_difference 'User.count' do

  post users_path, user: { name:  "",

                           email: "user@invalid",

                           password:              "foo",

                           password_confirmation: "bar" }

end

assert_template 'users/new'

assert_select 'div#error_explanation'

assert_select 'div.field_with_errors'

end

test "valid signup information" do

get signup_path

assert_difference 'User.count', 1 do

  post_via_redirect users_path, user: { name:  "Example User",

                                        email: "user@example.com",

                                        password:              "password",

                                        password_confirmation: "password" }
end

# assert_template 'users/show'

# assert is_logged_in?

end

end

//app/controllers/users_corntroller.rb

class UsersController < ApplicationController

before_action :logged_in_user, only: [:index, :edit, :update, :destroy]

before_action :correct_user, only: [:edit, :update]

before_action :admin_user, only: :destroy

def show

@user = User.find(params[:id])

end

def new

@user = User.new

end

def edit

end

def update

if @user.update_attributes(user_params)

  flash[:success] = "Profile updated"

  redirect_to @user

else

  render 'edit'

end

end

def index

@users = User.paginate(page: params[:page])

end

def destroy

User.find(params[:id]).destroy

flash[:success] = "User deleted"

redirect_to users_url

end

private

def user_params

  params.require(:user).permit(:name, :email, :password,

                               :password_confirmation)

end




# Before filters

# Confirms a logged-in user.

def logged_in_user

  unless logged_in?
  store_location


    flash[:danger] = "Please log in."

    redirect_to login_url

  end

end


# Confirms the correct user.

def correct_user

  @user = User.find(params[:id])

  redirect_to(root_url) unless @user == current_user

end

# Confirms an admin user.

def admin_user

  redirect_to(root_url) unless current_user.admin?

end


def create

@user = User.new(user_params)

if @user.save

  UserMailer.account_activation(@user).deliver_now

  flash[:info] = "Please check your email to activate your account."

  redirect_to root_url

else

  render 'new'

end

end

end

Aucun commentaire:

Enregistrer un commentaire