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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

246閲覧

モデルスペックについて

TEMM

総合スコア15

RSpec

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

Ruby on Rails

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

0グッド

0クリップ

投稿2019/01/15 16:18

everyday railsというrspecの参考書を勉強していたところ、モデルスペックのプログラムの部分でエラーが出てしまい困惑しています。色々考えたのですが解決できないため、知恵をお借りしたいと思います。

require 'rails_helper' RSpec.describe Note, type: :model do before do # このファイルの全テストで使用するテストデータをセットアップする user = User.create( first_name: "Joe", last_name: "Tester", email: "joetester@example.com", password: "dottle-nouveau-pavilion-tights-furze", ) project = user.projects.create( name: "Test Project", ) end # バリデーションのテストが並ぶ # ユーザ、プロジェクト、メッセージがあれば有効な状態であること it "is valid with a user, project, and message" do note = Note.new( message: "This is a sample note.", user: @user, project: @project, ) expect(note).to be_valid end # メッセージがなければ無効な状態であること it "is invalid without a message" do note = Note.new(message: nil) note.valid? expect(note.errors[:message]).to include("can't be blank") end # 文字列に一致するメッセージを検索する describe "search message for a term" do before do # 検索機能の全テストに関連する追加のテストデータをセットアップする note1 = project.notes.create( message: "This is the first note.", user: user, ) note2 = project.notes.create( message: "This is the second note.", user: user, ) note3 = project.notes.create( message: "First, preheat the oven.", user: user, ) end # 一致するデータが見つかるとき context "when a match is found" do # 検索文字列に一致するメモを返すこと it "returns notes that match the search term" do expect(Note.search("first")).to include(note1, note3) end end # 一致するデータが1件も見つからないとき context "when no match is found" do # 空のコレクションを返すこと it "returns an empty collection" do expect(Note.search("message")).to be_empty end end end end

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

ruby

1 before do 2 # このファイルの全テストで使用するテストデータをセットアップする 3 user = User.create( 4 first_name: "Joe", 5 last_name: "Tester", 6 email: "joetester@example.com", 7 password: "dottle-nouveau-pavilion-tights-furze", 8 ) 9 10 project = user.projects.create( 11 name: "Test Project", 12 ) 13 end

ruby

1 let(:user) do 2 User.create( 3 first_name: "Joe", 4 last_name: "Tester", 5 email: "joetester@example.com", 6 password: "dottle-nouveau-pavilion-tights-furze", 7 ) 8 end 9 let(:project) do 10 user.projects.create( 11 name: "Test Project", 12 ) 13 end

で置換し、@useruser @projectprojectに置換

投稿2019/01/15 17:47

asm

総合スコア15147

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

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

TEMM

2019/01/16 11:33

ご指摘頂いきありがとうございます。 教えていただいた通り修正したところ、エラーが消えました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問