2011-12-23 7 views
1

を作成します。問題のコントローラーはAdminの名前空間のPostsControllerで、モデルはPostです。工場自体は、タイトルと本文のある投稿を作成するだけです。私が受信し続けるRSpecのは、私はRailsの、RSpecのとファクトリー・ガールの最新バージョンを使用していると私は私の作成または更新ロジックをテストしようとしたとき、私は奇妙な問題を取得しています/更新未知のアトリビュートエラー

describe 'create' do 
before :all do 
    @new = Factory.build(:post) 
end 

it 'should be successful' do 
    post :create, :post => @new 
    response.should be_success 
end 

describe 'failure' do 
    it 'should not create a new page' do 
    lambda do 
     post :create, :post => @new 
    end.should_not change(Post, :count) 
    end 

    it 'should render the new template' do 
    post :create, :post => @new 
    response.should render_template('new') 
    end 
end 

エンド

エラーがある:私は

ActiveRecord::UnknownAttributeError: unknown attribute: post

おそらく非常に愚かな何かをやっているが、私はちょうど今迷ってしまいました。ただ、誰もが今までにこの偶然見つけなければならない場合

UPDATE

...

私は非常に愚かな何かをやっていました。私はそれはそれは上の障害の何行を知るために役立つだろうPost.new(のparams)...

+0

ところで、私は上記のテストのうち2つが失敗することを知っていますが、私は彼らが正しい理由で失敗することを望みます。私の計画は元に戻って、すべてがうまくいったら本当の失敗事例を追加することでした。 – PetrolMan

答えて

2

を呼んでいた:私の代わりに([ポスト]のparams)Post.newを呼び出すの私のコントローラにエラーが発生しました。それは前に:すべて "に失敗しています場合、ブロック、問題はおそらくモデルの存在しない「ポスト」属性の値を指定されたあなたの工場コード、である可能性があります。

実際には 'post'属性が存在するはずですが、実際にはrspecを使用してコマンドラインからrake db:test:prepareを実行しないで実行しました。その場合、あなたの「投稿」テーブル構造は最新ではないかもしれません。

+0

投稿に失敗しています:毎回行を作成してください。私はdb:test:を実行しました。また、DB内のすべてが最新であることを確認するためにチェックしました。 – PetrolMan