次のテストで問題が発生しています。オブジェクトを作成すると、「ペンディング」のステータスが割り当てられます。ステータスは実際にはアクティブなレコードの関連付けです。だから、この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を持っているので、コードがテストをパスすることがわかります。私は理解できない複数のインスタンスを持っています。
ありがとう