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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1611閲覧

railsチュートリアル6章のテストについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/05/26 12:27

編集2019/05/26 12:35

教材内ではテストに通る予定ですが通りません。

エラー文↓

Rails

1FAIL["test_email_validation_should_accept_valid_addresses", Minitest::Result, 0.06974726400221698] 2 test_email_validation_should_accept_valid_addresses#Minitest::Result (0.07s) 3 "user@example.com" should be valid 4 test/models/user_test.rb:36:in `block (2 levels) in <class:UserTest>' 5 test/models/user_test.rb:34:in `each' 6 test/models/user_test.rb:34:in `block in <class:UserTest>'

テスト内容↓

Rails

1test "email validation should accept valid addresses" do 2 valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org first.last@foo.jp alice+bob@baz.cn] 3 valid_addresses.each do |valid_address| 4 @user.email = valid_address 5 assert @user.valid?, "#{valid_address.inspect} should be valid" 6 end 7 end

Userモデル↓

Rails

1class User < ApplicationRecord 2 before_save {self.email = email.downcase} 3 validates :name, presence: true, length:{maximum: 50} 4 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i 5 validates :email, presence: true, length:{maximum: 255},format: {with: VALID_EMAIL_REGEX}, uniqueness: {case_sensitive: false} 6 has_secure_password 7 validates :password, presence: true, length:{minimum: 8} 8 validates :co_name, presence: true 9end 10

何度見返してもわからないのでわかる方がいましたらお力をお貸しください。
宜しくお願い致します。

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

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

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

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

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

mottox2

2019/05/26 12:30

できれば エディタの <code> を使ってサンプルコードを書くと見やすいです!
退会済みユーザー

退会済みユーザー

2019/05/26 12:35

こういう書き方があったんですね!ご指摘ありがとうございます!
guest

回答1

0

ベストアンサー

一旦、email以外の原因でテストが落ちていない確認するといいかもしれません。
テストコードを次のように書き換えて、何がエラーの原因か確かめてみましょう。

ruby

1test "email validation should accept valid addresses" do 2 valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org first.last@foo.jp alice+bob@baz.cn] 3 valid_addresses.each do |valid_address| 4 @user.email = valid_address 5 @user.valid? 6 puts @user.errors.messages 7 assert @user.valid?, "#{valid_address.inspect} should be valid" 8 end 9 end

投稿2019/05/26 12:51

mottox2

総合スコア299

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

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

退会済みユーザー

退会済みユーザー

2019/05/28 15:37

すいません、他に独自のカラムに対してvalidationをかけていたのに、上記のテストにその対策を書いてんかったのが原因でした。 試しにvalidationをコメントアウトしたら通りました。 ご協力ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問