プログラミング初学者です。
rails 6を用いて、投稿機能がついたアプリケーションを開発しています。
モデルにはuser, micropost, relationship, prefecture, splitを使っており、micropostはbelongs_toで、user, prefecture, splitをidで関連づけ、バリテーションも掛けている状況です。
app/models/micropost.rb class Micropost < ApplicationRecord belongs_to :user belongs_to :prefecture belongs_to :split has_one_attached :image default_scope -> { order(created_at: :desc) } validates :user_id, presence: true validates :prefecture_id, presence: true validates :split_id, presence: true validates :content, presence: true, length: { maximum: 140 } validates :image, content_type: { in: %w[image/jpeg image/gif image/png], message: "は有効な画像形式である必要があります" }, size: { less_than: 5.megabytes, message: "は5MB未満である必要があります" } def display_image image.variant(resize_to_limit: [500, 500]) end
現在、micropostにpresence: trueのバリテーションがしっかり掛かっているかをテストするために下記のテストコードを書きました。
test/models/micropost_test.rb require 'test_helper' class MicropostTest < ActiveSupport::TestCase def setup @user = users(:michael) @micropost = @user.microposts.build(prefecture_id: 1, split_id: 1, content: "Lorem ipsum") end test "should be valid" do assert @micropost.valid? end test "user id should be present" do @micropost.user_id = nil assert_not @micropost.valid? end test "prefecture id should be present" do @micropost.prefecture_id = nil assert_not @micropost.valid? end test "split id should be present" do @micropost.split_id = nil assert_not @micropost.valid? end test "content should be present" do @micropost.content = " " assert_not @micropost.valid? end test "content should be at most 140 characters" do @micropost.content = "a" * 141 assert_not @micropost.valid? end test "order should be most recent first" do assert_equal microposts(:most_recent), Micropost.first end end
その後、以下のエラーが表記されました。
FAIL["test_should_be_valid", #<Minitest::Reporters::Suite:0x000055bf9c549898 @name="MicropostTest">, 0.4078576729989436] test_should_be_valid#MicropostTest (0.41s) Expected false to be truthy. test/models/micropost_test.rb:13:in `block in <class:MicropostTest>'
@micropostに渡した引数が正しくないことが原因だと考えているのですが、直す箇所がわからないので、ご教授をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/15 05:55
2021/04/15 06:19 編集
2021/04/15 06:33 編集
2021/04/16 01:33 編集