【发布时间】:2011-04-22 02:51:05
【问题描述】:
我显然正在使用 Devise 进行身份验证,而我正在尝试做的是测试在用户对象上调用了一个方法。所以我的规范看起来像这样:
it "should retrieve something for user" do
@user = Factory.create(:user)
sign_in @user
@user.expects(:something)
get :manage
end
我遇到的问题是期望失败,除非我这样做:
it "should retrieve something for user" do
@user = Factory.create(:user)
sign_in @user
controller.stubs(:current_user).returns @user
@user.expects(:something)
get :manage
end
如果 sign_in @user 是一个设计测试助手,那么在控制器上伪造 current_user 调用似乎是不明智的。在调试器中挖掘之后,当不伪造 current_user 时,@user 确实被返回,所以我不确定为什么没有达到预期。
想法?
【问题讨论】:
标签: ruby-on-rails rspec devise