我在一個名爲Project的模型中有此代碼。它在項目被保存之前將所有者設置爲項目。Rspec mock_model在instanced對象中不可用?
before_save :set_owner
# Set the owner of the project right before it is saved.
def set_owner
self.owner_id = mock_model(User).id # current_user.id is stubbed out for a mock_model.
# Lifecycle is set by the form's collection_select
end
而且CURRENT_USER功能在我的Rspec的測試返回mock_model掐滅(這就是爲什麼上面的代碼顯示mock_model代替CURRENT_USER)。
現在,當我運行此,我Rspec的測試突破,並且抱怨:
undefined method `mock_model' for #<Project:0x105c70af0>
我的猜測是,由於before_save是一個實例函數,它在某種程度上認爲mock_model是在項目定義的函數。
以前有人遇到過這種情況...有什麼方法可以解決它嗎?
除了我的評論:在我的控制器幫助我的方法不能在我before_save功能在我的模型中使用?即使我調用current_user時,它也會給我一個錯誤,說明中未定義的局部變量或函數current_user。該模型的範圍不包括我的應用程序控制器中的幫助器方法嗎? –
hahuang65
2010-11-03 02:02:18