前提・実現したいこと
Railsでテストを書いています。(ソースコード下述)
"should be valid"
テストのassert @detail.valid
の部分でテストがfailする(Expected false to be truthy.)のですが、コンソールで全く同じ@detailを作成し@detail.valid?とするとTrueが帰ってきます。
なぜテストが通らないのか教えていただきたいです。
程度の低い質問でしたら申し訳ございません。
また、質問に必要な情報等に不足があれば、お手数ですがご指摘いただければ、追記いたします。
よろしくお願いいたします。
該当のソースコード
ruby
1[detail_test.rb] 2require 'test_helper' 3 4class DetailTest < ActiveSupport::TestCase 5 6 def setup 7 8 9 @detail = Detail.new(user_id: "1", authenticity_token: "dajfisjfjs", mother_tongue: "Japanese", 10 japanese_level: "Beginner | 初心者", english_level: "Beginner | 初心者", 11 region: "Asia | アジア", purpose: "Business | 仕事", 12 self_introduction: "djifjiajfja", gender: "he/him | 男性", 13 sns_1: "djfiasf", sns_2: "jdifdjas", sns_3: "fadiofaj") 14 end 15 16 test "should be valid" do 17 assert @detail.valid? 18 end 19 20 test "mother_tongue should be present" do 21 @detail.mother_tongue = " " 22 assert_not @detail.valid? 23 end 24 25 test "japanese_level should be present" do 26 @detail.japanese_level = " " 27 assert_not @detail.valid? 28 end 29 30 test "english_level should be present" do 31 @detail.english_level = " " 32 assert_not @detail.valid? 33 end 34 35 test "region should be present" do 36 @detail.region = " " 37 assert_not @detail.valid? 38 end 39 40 test "purpose should be present" do 41 @detail.purpose = " " 42 assert_not @detail.valid? 43 end 44 45 test "self_introduction should be present" do 46 @detail.self_introduction = " " 47 assert_not @detail.valid? 48 end 49 50end
ruby
1[detail.rb] 2class Detail < ApplicationRecord 3 belongs_to :user 4 validates :mother_tongue, presence: true 5 validates :japanese_level, presence: true 6 validates :english_level, presence: true 7 validates :region, presence: true 8 validates :purpose, presence: true 9 validates :self_introduction, presence: true, length: {maximum:300} 10end 11
補足情報(FW/ツールのバージョンなど)
Rails 6.0.3
Ruby 2.6.3
AWS Cloud9を使用
回答1件
あなたの回答
tips
プレビュー