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

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

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

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

Ruby

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

Q&A

解決済

1回答

1982閲覧

Railsチュートリアル6章で$rails test実行時に発生したエラーを解決したい

taka2477

総合スコア8

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2018/08/21 11:30

編集2018/08/21 12:27

前提・実現したいこと

Railsチュートリアル6章をやっており、6.34終了時(Railsチュートリアル6章)に$rails testを実行したら、
エラーが発生してしまいました。ググってみたり自分なりにいろいろ試したのですが、解決できませんでした。原因究明して先に進みたいので、どなたかご教授いただけると幸いです。

発生している問題・エラーメッセージ

Running via Spring preloader in process 11946 Started with run options --seed 47576 Run options: --seed 47576--=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=-] 0% Time: 00:00:00, ETA: ??:??:?? # Running: . 16/2: [============ ] 12% Time: 00:00:00, ETA: 00:00:0.. 16/4: [========================= ] 25% Time: 00:00:00, ETA: 00:00:.. 16/6: [====================================== ] 37% Time: 00:00:00, ETA: 00:00:. 16/7: [============================================ ] 43% Time: 00:00:00, ETA: 00:00:0..... 16/12: [============================================================================ ] 75% Time: 00:00:00, ETA: 00: FAIL["test_email_addresses_should_be_unique", UserTest, 0.41908737100129656] test_email_addresses_should_be_unique#UserTest (0.42s) Expected true to be nil or false test/models/user_test.rb:53:in `block in <class:UserTest>' F 16/13: [================================================================================== ] 81% Time: 00:00:00, ETA: 00:00:00 Failure: UserTest#test_email_addresses_should_be_unique [/home/ec2-user/environment/sample_app/test/models/user_test.rb:53]: Expected true to be nil or false bin/rails test test/models/user_test.rb:49 . 16/16: [=====================================================================================================] 100% Time: 00:00:00, Time: 00:00:00 . Finished in 0.43870s 16 tests, 36 assertions, 1 failures, 0 errors, 0 skips Finished in 0.450738s, 35.4974 runs/s, 79.8691 assertions/s. 16 runs, 36 assertions, 1 failures, 0 errors, 0 skips

該当のソースコード

require 'test_helper' class UserTest < ActiveSupport::TestCase def setup @user = User.new(name: "Example User", email: "user@example.com") end test "should be valid" do assert @user.valid? end test "name should be present" do @user.name = "" assert_not @user.valid? end test "email should be present" do @user.email = "" assert_not @user.valid? end test "name should not be too long" do @user.name = "a"*51 assert_not @user.valid? end test "email should not be too long" do @user.email = "a"*244 + "@example.com" assert_not @user.valid? end test "email validation should accept valid addresses" do valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org first.last@foo.jp alice+bob@baz.cn] valid_addresses.each do |valid_address| @user.email = valid_address assert @user.valid?, "#{valid_address.inspect} should be valid" end end test "email validation should reject invalid addresses" do invalid_addresses = %w[user@example,com user_at_foo.org user.name@example. foo@bar_baz.com foo@bar+baz.com foo@bar..com] invalid_addresses.each do |invalid_address| @user.email = invalid_address assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" end end test "email addresses should be unique" do duplicate_user = @user.dup duplicate_user.email = @user.email.upcase @user.save assert_not duplicate_user.valid? end test "email address should be saved as a lower-case" do mixed_case_email = "Foo@ExAMPle.CoM" @user.email = mixed_case_email @user.save assert_equal mixed_case_email.downcase, @user.reload.email end end
class User < ApplicationRecord before_save { self.email = email.downcase! } validates :name, presence: true, length: { maximum:50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(.[a-z\d\-]+)*.[a-z]+\z/i validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } end

試したこと

最初はミニテストのエラーが発生していたので、調べてみたところRuby on Rails チュートリアル3章のテストのバグとその対応メモが参考になったので、minitestを5.10.3にしました。

それ以外だと、チュートリアルに従って再度やり直しましたがエラーは直らずです。

補足情報(FW/ツールのバージョンなど)

Rails 5.1.4、実装環境はクラウド9

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。再度チュートリアルを読み直して、やり直したら解決しました。お騒がせしました。

投稿2018/08/21 13:22

taka2477

総合スコア8

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問