我正在研究一个应用程序,其中大部分(如果不是全部)数据的范围都是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