我写了一个小应用程序来练习 minitest。堆栈的版本如下:
- 导轨 4.1.4
- 红宝石 2.1.2p95
- 设计 3.2.4
- devise_token_auth 0.1.25
- 轨道 API 0.2.1
该应用程序是根据 rails-api 指令从头开始生成的,我可以从客户端看到一切正常。
我遇到的困难是必须处理身份验证的控制器测试。
我从以下方面获得了这种测试的灵感:
我的测试代码位于: http: //pastebin.com/iPVk9Tzq
当我运行测试套件时,我得到以下错误:
PostsControllerTest#test_get_index_is_successful_if_logged_in:
NoMethodError: undefined method `session_serializer' for nil:NilClass
test/controllers/posts_controller_test.rb:24:in `block in <class:PostsControllerTest>'
我在网上尝试了不同的搜索,但我无法弄清楚如何解决这个问题。
我知道发生错误是因为应用程序是作为无状态 API 实现的,因此在任何地方都没有存储会话。
显然,如果我注释掉“request.headers.merge!...”行,错误消失并且测试失败并返回 401(当用户未登录时应该如此)。
任何帮助/建议都会受到广泛赞赏!
问候