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

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

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

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

RSpec

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

Ruby on Rails

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

Q&A

2回答

1566閲覧

RSpecでモデルのテストが通らない

kz_oita0714

総合スコア5

Ruby

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

RSpec

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/01/25 14:24

###解決したいこと
モデルのテストを実行しているが以下のエラーによりパスできない。

###エラー文
イメージ説明

###修正で試したこと
作成したファイルの保存先か、ファイル名のミスと思い確認しましたが、合っているようでした。
読み込みの記載が間違っているのでしょうか?
初歩的な質問ですが、よろしくお願いします。

###コード
spec/models/message_spec.rb

require 'rails_helper' RSpec.describe Message, type: :model do describe '#create' do context 'can save' do it 'is valid with content' do expect(build(:message, image: nil)).to be_valid end it 'is valid with image' do expect(build(:message, content: nil)).to be_valid end it 'is valid with content and image' do expect(build(:message)).to be_valid end end context 'can not save' do it 'is invalid without content and image' do message = build(:message, content: nil, image: nil) message.valid? expect(message.errors[:content]).to include("を入力してください") end it 'is invalid without group_id' do message = build(:message, group_id: nil) message.valid? expect(message.errors[:group]).to include("を入力してください") end it 'is invaid without user_id' do message = build(:message, user_id: nil) message.valid? expect(message.errors[:user]).to include("を入力してください") end end end end

spec/factories/message.rb

FactoryBot.define do factory :message do content {Faker::Lorem.sentence} image {File.open("#{Rails.root}/public/images/test_image.jpg")} user group end end

rails helper.rb

RSpec.configure do |config| config.include FactoryBot::Syntax::Methods

Gemfile

group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platform: :mri gem 'pry-rails' gem 'rspec-rails', '~> 3.5' gem 'rails-controller-testing' gem 'factory_bot_rails' gem 'faker' end

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

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

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

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

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

guest

回答2

0

uninitialized constant Message

なので、Messageクラスが読み込めていないようです。

app/models/message.rbにMessageクラスがあることを確認してください

投稿2020/01/26 05:33

asm

総合スコア15147

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

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

0

rails_helper.rbに

以下を追加してみていただいたらいかがでしょうか!?

require File.expand_path('../../config/environment', __FILE__)

投稿2020/01/25 18:32

kiddayo

総合スコア240

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

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

kz_oita0714

2020/01/26 00:42

追加してみましたが、解決できませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問