设计在测试中为nil类抛出未定义的用户

时间:2014-07-04 09:25:11

标签: ruby-on-rails ruby ruby-on-rails-3 rspec devise

我在版本3.2.2中使用Devise Gem在我的Rails 3.2.17应用程序中进行身份验证。现在我正在使用此Gist中建议的方法构建API并使用设计来保护它。

现在,当我使用curl在安全控制器上执行get请求时(在这种情况下使用UI),我获得了200和我正在寻找的响应。由于某些原因,我的测试失败并产生如下错误:

1) Api::V1::UsersController#information should get the dancing partner
 Failure/Error: get :information, {}
 NoMethodError:
   undefined method `user' for nil:NilClass
 # ./app/controllers/api/v1/api_controller.rb:26:in `authenticate_user_from_token!'
 # ./spec/controllers/api/users_controller_spec.rb:24:in `block (3 levels) in <top (required)>'

我不知道这是由设计还是其他因素导致的问题,所以我在本帖子的底部附上了所有更改后的代码。

以下是一个如何运作的示例:

enter image description here

This is my Api controller, which should secure the normal controllers used for the api.

This is my secured controller

Here are my tests

This is my authentication helper

This is my test helper

The complete output of log/test.log

1 个答案:

答案 0 :(得分:0)

我只是想通了,这个错误来自于访问用户变量,我正在测试无效身份验证的响应。