0

我在測試以下內容時遇到問題。創建對象時,會分配狀態「待定」。該狀態實際上是活躍的記錄關聯。所以它看起來像這樣RSpec - 測試是否設置了活動記錄關聯

def object 
    belongs_to :object_status 
end 

def object_status 
    has_many :objects 

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

然後在控制器中創建它這樣做

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

在RSpec的我想測試,以確保對象具有掛起的,所以我做這個的狀態在我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 了無 出於某種原因,它不檢索object_status_id的值。如果我運行我的開發服務器中的代碼,數據庫中的對象具有正確設置的object_status_id,所以我知道代碼通過了測試。我有這個我無法弄清楚的多個實例。

謝謝

回答

0

這是由於對Factory_Girl缺乏瞭解。我實際上並沒有在測試數據庫中創建對象,只能在燈具中創建。