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

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

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

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

Ruby

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

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Q&A

受付中

(Rspec)画像投稿の枚数制限のテストコードについて

mac07
mac07

総合スコア5

Ruby on Rails 5

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

Ruby

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

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

0回答

0グッド

0クリップ

146閲覧

投稿2022/09/25 05:25

前提

画像投稿の枚数制限(Validation:4枚まで)

post.rb

1validate :images, :image_type, :image_size, :image_length 2 3private 4 def image_length 5 if images.length > 4 6 images.attachments.clear 7 errors.add(:images, "は4枚以内にしてください") 8 end 9 end

post.spec.rb

1it '画像は4枚までしか投稿できない' do 2 @post.images.length > 4 3 @post.valid? 4 binding.pry 5 end

factorybot(画像に関する記述)

1after(:build) do |post| 2 post.images.attach(io: File.open('public/test_image.png'), filename: 'test_image.png') 3 end

画像投稿のアプりを作成中でこのように、画像の投稿枚数にバリデーションをかけて
テストコードを実行するも、

tターミナル

1@post.errors.full_messages 2=> [] 3

実現したいこと

テストコードを通すために、エラーメッセージを取得したい。

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

post_spec.rbのテストコードの記述が間違っている可能性がありますが
テストコードに関する記事が少なく、枚数制限の書き方がわかりません。

どなたか教えて頂きたいです。よろしくお願いいたします!
ここにより詳細な情報を記載してください。

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 5

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

Ruby

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

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。