首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可邀请的测试设计

可邀请的测试设计
EN

Stack Overflow用户
提问于 2014-03-11 03:25:54
回答 1查看 1.4K关注 0票数 4

我在我的应用程序中使用了devise invitable。我已经为一些自定义行为重写了设计的可邀请邀请控制器。当我尝试为此编写控制器测试时,我得到了以下错误:

代码语言:javascript
复制
NoMethodError: undefined method 'name' for nil:NilClass

在执行get :new时会发生这种情况。

按照设置说明中的指示设置路由:

代码语言:javascript
复制
devise_for :users, controllers: { sessions: 'users/sessions', invitations: 'users/invitations', registrations: :registrations }

控制器位于/app/controllers/users/invitations_controller.rb下,文件Users::InvitationsController中的名称间距与测试/tests/controllers/users/invitations_controller.rb Users::InvitationsControllerTest相同

这就是测试:

代码语言:javascript
复制
context '#new' do
  context 'while not signed in' do
    should 'redirect to the login page' do
      get :new
      assert_redirected_to new_user_session_path
    end
  end
end

这是一个动作:

代码语言:javascript
复制
def new
  self.resource = resource_class.new
  self.resource.build_group if current_inviter.is_admin?
  self.resource.group = current_inviter.group if current_inviter.is_manager?
  render :new
end

谢谢你的帮助谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-06-20 15:53:41

您需要在每个请求之前(或在设置块中)设置Devise.mappings,如下所示:

@request.env["devise.mapping"] = Devise.mappings[:user]

这是为了帮助在测试中设计正确的路由映射。

更多信息可以在这里找到- https://github.com/plataformatec/devise/wiki/How-To:-Test-controllers-with-Rails-3-and-4-(and-RSpec)

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

https://stackoverflow.com/questions/22309430

复制
相关文章

相似问题

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