いつもお世話になっております。
Ruby on Rails Tutorial 8章でuser_specが
エラーとなってしまい、それ以降を実行することができません。
おそらく実行ページ先が見つかっていないのかと思いますが、
チュートリアル通りには従っているはずなので困っています。
どうかお助けくださいませ。
下記の続きとなります。
https://teratail.com/questions/12650
-
User
Failure/Error: it { should respond_to(:remember_token) }
expected #<User id: nil, name: "Example User", email: "user@example.com", created_at: nil, updated_at: nil, password_digest: "$2a$04$PJzlVtwcWJvv179.p9.aJuc1c6gVqAI06IbG6zcu.PsC...", remeber_token: nil> to respond to :remember_token./spec/models/user_spec.rb:17:in `block (2 levels) in <top (required)>'
-
User when email address is already taken
Failure/Error: user_with_same_email.save NoMethodError: undefined method `remember_token=' for #<User:0x007fb94551f300> # ./app/models/user.rb:23:in `create_remember_token' # ./spec/models/user_spec.rb:62:in `block (3 levels) in <top (required)>'
- User remember token remember_token
Failure/Error: before { @user.save } NoMethodError: undefined method `remember_token=' for #<User:0x007fb94312dfa0> # ./app/models/user.rb:23:in `create_remember_token' # ./spec/models/user_spec.rb:102:in `block (3 levels) in <top (required)>'
- User return value of authenticate method with valid password
Failure/Error: before { @user.save } NoMethodError: undefined method `remember_token=' for #<User:0x007fb943145a38> # ./app/models/user.rb:23:in `create_remember_token' # ./spec/models/user_spec.rb:86:in `block (3 levels) in <top (required)>'
- User return value of authenticate method with invalid password
Failure/Error: before { @user.save } NoMethodError: undefined method `remember_token=' for #<User:0x007fb946819b40> # ./app/models/user.rb:23:in `create_remember_token' # ./spec/models/user_spec.rb:86:in `block (3 levels) in <top (required)>'
- User return value of authenticate method with invalid password
Failure/Error: before { @user.save } NoMethodError: undefined method `remember_token=' for #<User:0x007fb945642390> # ./app/models/user.rb:23:in `create_remember_token' # ./spec/models/user_spec.rb:86:in `block (3 levels) in <top (required)>'
◼︎ user_spec.rb
lang
1require 'spec_helper' 2 3describe User do 4 5 before do 6 @user = User.new(name: "Example User", email: "user@example.com", 7 password: "foobar", password_confirmation: "foobar") 8 end 9 10 subject { @user } 11 12 it { should respond_to(:name) } 13 it { should respond_to(:email) } 14 it { should respond_to(:password_digest) } 15 it { should respond_to(:password) } 16 it { should respond_to(:password_confirmation) } 17 it { should respond_to(:remember_token) } 18 it { should respond_to(:authenticate) } 19 20 it { should be_valid } 21 22 describe "when name is not present" do 23 before { @user.name = " " } 24 it { should_not be_valid } 25 end 26 27 describe "when email is not present" do 28 before { @user.email = " " } 29 it { should_not be_valid } 30 end 31 32 describe "when name is too long" do 33 before { @user.name = "a" * 51 } 34 it { should_not be_valid } 35 end 36 37 describe "when email format is invalid" do 38 it "should be invalid" do 39 addresses = %w[user@foo,com user_at_foo.org example.user@foo. 40 foo@bar_baz.com foo@bar+baz.com] 41 addresses.each do |invalid_address| 42 @user.email = invalid_address 43 expect(@user).not_to be_valid 44 end 45 end 46 end 47 48 describe "when email format is valid" do 49 it "should be valid" do 50 addresses = %w[user@foo.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@baz.cn] 51 addresses.each do |valid_address| 52 @user.email = valid_address 53 expect(@user).to be_valid 54 end 55 end 56 end 57 58 describe "when email address is already taken" do 59 before do 60 user_with_same_email = @user.dup 61 user_with_same_email.email = @user.email.upcase 62 user_with_same_email.save 63 end 64 65 it { should_not be_valid } 66 end 67 68 describe "when password is not present" do 69 before do 70 @user = User.new(name: "Example User", email: "user@example.com", password: " ", password_confirmation: " ") 71 end 72 it { should_not be_valid } 73 end 74 75 describe "when password doesn't match confirmation" do 76 before { @user.password_confirmation = "mismatch" } 77 it { should_not be_valid } 78 end 79 80 describe "with a password that's too short" do 81 before { @user.password = @user.password_confirmation = "a" * 5 } 82 it { should be_invalid } 83 end 84 85 describe "return value of authenticate method" do 86 before { @user.save } 87 let(:found_user) { User.find_by(email: @user.email) } 88 89 describe "with valid password" do 90 it { should eq found_user.authenticate(@user.password) } 91 end 92 93 describe "with invalid password" do 94 let(:user_for_invalid_password) { found_user.authenticate("invalid") } 95 96 it { should_not eq user_for_invalid_password } 97 specify { expect(user_for_invalid_password).to be_false } 98 end 99 end 100 101 describe "remember token" do 102 before { @user.save } 103 its(:remember_token) { should_not be_blank } 104 end 105end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/18 18:27