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:in
block in ' test/integration/users_signup_test.rb:8:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:7:in
block 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:in
block in ' test/integration/users_signup_test.rb:21:in block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:20:in
block 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