0

micropost_spec.rb ファイルのコードで次の 3 つのエラーが発生します。どうすれば修正できますか? チュートリアルに正確に従っていると思いますが、Rails のバージョンが異なると問題が発生する可能性があります。

ルビーのバージョン: 1.9.2p320

レールのバージョン: 3.2.13

Rスペック: 2.11.1

コンピューター: Macbook pro OS X Mountain Lion

エラー

1) user_id が存在しない場合のマイクロポスト
   失敗/エラー: { User.should_not be_valid }
   NoMethodError:
     未定義のメソッド「有効?」為に #
   # ./spec/models/micropost_spec.rb:19:in `ブロック (3 レベル) in '

2) 内容が空白のマイクロポスト
   失敗/エラー: { User.should_not be_valid}
   NoMethodError:
     未定義のメソッド「有効?」為に #
   # ./spec/models/micropost_spec.rb:24:in `ブロック (3 レベル) in '

3) コンテンツが長すぎる場合のマイクロポスト
   失敗/エラー: { User.should_not be_valid }
   NoMethodError:
     未定義のメソッド「有効?」為に #
   # ./spec/models/micropost_spec.rb:29:in `ブロック (3 レベル) in '

micropost_spec.rb

require 'spec_helper'

describe Micropost do

  let(:user) { FactoryGirl.create(:user) }
  before { @micropost = user.microposts.build(content: "Lorem ipsum") }

  subject { @micropost }

  it { should respond_to(:content) }
  it { should respond_to(:user_id) }
  it { should respond_to(:user) }
  its(:user) { should eq user }

  it { should be_valid }

  describe "when user_id is not present" do
    before { @micropost.user_id = nil }
    it { should_not be_valid }
  end

  describe "with blank content" do
    before { @micropost = " "}
    it { should_not be_valid}
  end

  describe "when content is too long" do
    before { @micropost = "a" * 141 }
    it { should_not be_valid }
  end
end
4

1 に答える 1

0

表示されるエラー メッセージは、共有した仕様ファイルと一致しません。エラー メッセージには が表示されますUser.should ....が、仕様には暗黙の件名があります。このエラーは、意図したクラスではなく、間接的valid?にクラスを呼び出していることを反映しています。User@micropost

于 2013-08-10T19:36:15.703 に答える