首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存根Restul-authentication的current_user方法?

如何存根Restul-authentication的current_user方法?
EN

Stack Overflow用户
提问于 2010-05-13 02:51:19
回答 1查看 551关注 0票数 0

我正在尝试运行以下规范:

代码语言:javascript
复制
describe UsersController, "GET friends" do

  it "should call current_user.friends" do
    user = mock_model(User)
    user.should_receive(:friends)
    UsersController.stub!(:current_user).and_return(user)
    get :friends
  end

end

我的控制器看起来像这样

代码语言:javascript
复制
  def friends
    @friends = current_user.friends
    respond_to do |format|
      format.html
    end
  end

问题是我不能存根current_user方法,因为当我运行测试时,我得到:

代码语言:javascript
复制
Spec::Mocks::MockExpectationError in 'UsersController GET friends should call current
_user.friends'
Mock "User_1001" expected :friends with (any args) once, but received it 0 times[0m
./spec/controllers/users_controller_spec.rb:44:

current_user是一个来自Restful-authentication的方法,它包含在这个控制器中。我该如何测试这个控制器呢?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-13 03:11:14

您将需要模拟一个用户,然后将其传递给login_as方法,以模拟登录该用户。

代码语言:javascript
复制
@user_session = login_as(stub_model(User))
UserSession.stubs(:new).returns(@user_session)

http://bparanj.blogspot.com/2006_12_01_archive.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2821841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档