一部のActiveRecord検証でのRSpecテストに少し問題があります。テストスイートは次のようになります。
describe Event do
context "An Event" do
before do
valid_event_hash = {
:name => 'Blah Blah',
:desc => 'Yadda Yadda Yadda',
:category => 'some category',
:has_partner => false,
:event_abbr => 'BB'
}
@event = Event.new(valid_event_hash)
end
it "should have a name" do
@event.name = ''
@event.should_not be_valid
end
it "should have a description" do
@event.desc = ''
@event.should_not be_valid
end
it "should have an abbreviation no shorter than 2 letters and no longer than 3 letters" do
@event.event_abbr = ''
@event.should_not be_valid
@event.event_abbr = 'BlaBla'
@event.should_not be_valid
@event.event_abbr = 'B'
@event.should_not be_valid
end
after do
@event.destroy
end
end
end
モデルは、これらすべての検証に適切に合格するように設定されています。スキーマは、私が入力したすべてのフィールドが存在し、説明されていることを示しています。それでも、自動テストを実行すると、テストは次のエラーで失敗します。
Failure/Error: @event = Event.new(valid_event_hash)
unknown attribute: event_abbr
これらの値を使用して、コンソールでまったく同じ@eventインスタンスを作成でき、完全に機能します。私の直感的な反応は、何らかの理由で、テストスイートが使用しているモデルが:event_abbrフィールドを認識していないということですが、それがなぜであるかはわかりません。私は何かが欠けていると確信していますが、それが何であるかはわかりません。どんな助けでも大歓迎です。