質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Q&A

0回答

487閲覧

テストが通らない原因を知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

0グッド

0クリップ

投稿2020/06/03 08:03

・使用環境
AWS(cloud9)、rails 5.1.6、Ruby

・現在取り組んでいること(教材など含む)
rails tutorial6章6.3セキュアなパスワードを追加する。

・やりたいこと・解決したいこと
リスト6.40まで終わり、テストを実行したらエラーが8つ出てきて、解決方法を知りたい。

・うまくいっていない内容・すでに実行したこと
エラー内容

Ruby

1コード 2Finished in 0.569128s, 24.5991 runs/s, 24.5991 assertions/s. 3 4 1) Error: 5UserTest#test_email_addresses_should_be_unique: 6NoMethodError: undefined method `password_digest=' for #<User:0x0000000006969d48> 7Did you mean? password= 8 test/models/user_test.rb:5:in `setup' 9 10 2) Error: 11UserTest#test_name_should_not_be_too_long: 12NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a216c8> 13Did you mean? password= 14 test/models/user_test.rb:5:in `setup' 15 16 3) Error: 17UserTest#test_email_validation_should_accept_valid_addresses: 18NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a33300> 19Did you mean? password= 20 test/models/user_test.rb:5:in `setup' 21 22 4) Error: 23UserTest#test_email_validation_should_reject_invalid_addresses: 24NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a39250> 25Did you mean? password= 26 test/models/user_test.rb:5:in `setup' 27 28 5) Error: 29UserTest#test_name_should_be_present: 30NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a4ae60> 31Did you mean? password= 32 test/models/user_test.rb:5:in `setup' 33 34 6) Error: 35UserTest#test_email_should_not_be_too_long: 36NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a50c48> 37Did you mean? password= 38 test/models/user_test.rb:5:in `setup' 39 40 7) Error: 41UserTest#test_should_be_valid?: 42NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a62880> 43Did you mean? password= 44 test/models/user_test.rb:5:in `setup' 45 46 8) Error: 47UserTest#test_email_should_be_present: 48NoMethodError: undefined method `password_digest=' for #<User:0x0000000006a68668> 49Did you mean? password= 50 test/models/user_test.rb:5:in `setup' 51 5214 runs, 14 assertions, 0 failures, 8 errors, 0 skips 53 54user_test.rbファイル 55 56コード 57require 'test_helper' 58 59class UserTest < ActiveSupport::TestCase 60 def setup 61 @user = User.new(name: "Example User", email: "user@example.com", 62 password: "foobar", password_confirmation: "foobar") 63 end 64 65 test "should be valid?" do 66 assert @user.valid? 67 end 68 69 test "name should be present" do 70 @user.name = " " 71 assert_not @user.valid? 72 end 73 74 test "email should be present" do 75 @user.email = " " 76 assert_not @user.valid? 77 end 78 79 test "name should not be too long" do 80 @user.name = "a" * 51 81 assert_not @user.valid? 82 end 83 84 test "email should not be too long" do 85 @user.email = "a" * 244 + "@example.com" 86 assert_not @user.valid? 87 end 88 89 test "email validation should accept valid addresses" do 90 valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org 91 first.last@foo.jp alice+bob@baz.cn] 92 valid_addresses.each do |valid_address| 93 @user.email = valid_address 94 assert @user.valid?, "#{valid_address.inspect} should be valid" 95 end 96 end 97 98 test "email validation should reject invalid addresses" do 99 invalid_addresses = %w[user@example,com user_at_foo.org user.name@example. 100 foo@bar_baz.com foo@bar+baz.com] 101 invalid_addresses.each do |invalid_address| 102 @user.email = invalid_address 103 assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" 104 end 105 end 106 107 test "email addresses should be unique" do 108 duplicate_user = @user.dup 109 duplicate_user.email = @user.email.upcase 110 @user.save 111 assert_not duplicate_user.valid? 112 end 113 114end 115 116user.rbファイル 117コード 118class User < ApplicationRecord 119 before_save { self.email = email.downcase } 120 validates :name, presence: true, length: { maximum: 50 } 121 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i 122 validates :email, presence: true, length: { maximum: 255 }, 123 format: { with: VALID_EMAIL_REGEX }, 124 uniqueness: { case_sensitive: false } 125 has_secure_password 126end 127 128構文が間違えていないか確認(特に間違っていないと思いますが)、マイグレートを再度実行、バンドルインストールしたが正常にインストールされた。 129 130・自身の仮説 131マイグレートが成功したらschema.rbファイルにpassword_digestが追加されると思うので、マイグレートが正しく実行できていないかもしれません。 132 133以上になります。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問