0

次のテストで問題が発生しています。オブジェクトを作成すると、「ペンディング」のステータスが割り当てられます。ステータスは実際にはアクティブなレコードの関連付けです。だから、このRSpec - アクティブなレコードの関連付けが設定されているかどうかのテスト

def object 
    belongs_to :object_status 
end 

def object_status 
    has_many :objects 

    def self.pending 
    find_by_name('pending') 
    end 
end 

のように見えるその後、コントローラにそれがないの作成私は、オブジェクトがその保留中の私はこれをやっているのステータスを持っていることを確認するためにテストするRSpecのはこの

@object = Object.new(params[:object]) 
@object.object_status = ObjectStatus.pending 
@object.save 

私objects_controller_spec中:

post :create, :object => @attr # I'm using pre-defined attributes 
p = Object.last 
p.object_status_id.should eq(Factory(:object_status_pending).id) 

RSpecのテストは、以下の(16ファクトリーオブジェクトのIDである)で失敗します。 は16 が得た予想nil 何らかの理由で、object_status_idの値を取得していません。私のdevサーバーのコードを実行する場合、データベース内のオブジェクトは正しく設定されたobject_status_idを持っているので、コードがテストをパスすることがわかります。私は理解できない複数のインスタンスを持っています。

ありがとう

答えて

0

これはFactory_Girlに関する理解が不足していたためです。私は実際にテストデータベースにオブジェクトを作成していませんでしたが、フィクスチャでしかありませんでした。

関連する問題