我正在研究一個應用程序,其中大部分(如果不是全部)數據的範圍都是current_organization
。所以,在我的控制器,我找電話,我有這樣的事情,例如:如何通過摩卡和測試/單元正確存根Rails關聯方法?
def show
@user = current_organization.users.find(params[:id])
end
然而,在我的控制器的測試中,我有一個很難搞清楚的正確方法(或任何方式)存根這些電話,這樣我可以測試的東西,如:
get :show, :id => 1
assert_response :success
這些都沒有說「AR無法找到ID = 1的organization_ID = 3用戶」或什麼的。無論我嘗試什麼,我似乎都無法解決它。
我的設置塊看起來是這樣的:
setup do
company = organizations(:company) # fixture
@controller.stubs(:current_organization).returns(company)
# now what do I stub, if anything?
end
我試圖做這樣的東西:company.stubs(:users).returns([users(:one), users(:two)])
但由於AR find()
調用沒有一個基本的陣列存在不起作用。
我是否應該將假用戶數組設置爲像fake_users
這樣的變量,然後執行類似fake_users.stubs(:find).returns(@user)
的操作?那感覺不對,但也許這是正確的方法。
我只是尋找最好的方法來處理這個問題。我使用摩卡和測試/單位,如果這很重要或有幫助。
謝謝!
謝謝,這應該適合我需要的。 – rpheath 2010-12-04 23:03:10