我有rspec测试发布到某个操作。在动作中,会话变量是肯定设置的,但是在我的控制器测试中,会话哈希是空的。如何检查Rspec测试以查看控制器是否将会话变量设置为正确的值?Rspec测试是否在控制器动作中设置了会话变量
9
A
回答
15
您可以直接在rspec中访问会话,如下所示:session[:key]
。只需比较你想要的值。
+1
无关。对不起,我想我应该说什么试试。我尝试过,但会议是空的。规范有一个空的会话,但正常的方式使用控制器,它的工作原理 – chris 2013-05-02 16:00:57
+1
@Chris,我已经做了很多次,所以我知道它的工作原理。如果需要,请粘贴代码。 – 2013-05-02 16:34:20
0
您是否在控制器中使用了任何before_filter
?这可能是这种情况,如果before_filter
更改流程,并且您的代码与会话分配变量甚至没有评估。
例如,你可能有这条线在您的控制器:
# ...
before_filter :authenticate_user!
# ...
这意味着如果你没有登录,你将永远不会在这个控制器输入任何方法。所以session
变量将是空的。
3
相关问题
- 1. 在测试过程中,控制器无法设置会话变量
- 2. 在rspec控制器测试中分配变量
- 3. 如何在rspec控制器测试中存根局部变量
- 4. Rspec控制器测试不打我的控制器动作
- 5. 如何在rspec控制器测试中设置Rails缓存
- 6. Rspec控制器测试
- 7. 使用RSpec测试控制器中的实例变量
- 8. 检查是否设置了会话变量
- 9. 设置控制器测试
- 10. 自定义设计会话控制器RSpec测试失败AbstractController :: ActionNotFound
- 11. Rspec的3 - 测试在指定的控制器动作
- 12. Rspec实例变量和控制器测试
- 13. Rspec的2 +设计+惨惨 - Factorygirl =控制器测试工作不
- 14. 对RSpec控制器测试使用assert_select是否正确?
- 15. PHP会话是否设置了cookie?
- 16. 是否可以在非控制器测试中存储rspec中的实例变量?
- 17. Rspec测试控制器动作创建逻辑
- 18. 测试无法直接访问的RSpec控制器动作
- 19. Rspec的:测试控制器的所有动作
- 20. 无法在rspec控制器测试中设置Devise用户属性sign_in_count。它被重置为0控制器
- 21. 在控制器断言会话变量集 - Grails的测试用例
- 22. 如何使用会话变量rspec测试redirect_to
- 23. Rails:是否可以在rails控制器中使用会话变量?
- 24. 测试是否明确设置了document.domain
- 25. 在单元测试中动态设置Yii控制器
- 26. 会话变量是否有限制?
- 27. 在Jquery中设置会话变量
- 28. 在grails中设置会话变量1.3.7
- 29. 在Application_BeginRequest中设置会话变量
- 30. 设置会话变量为paramiko会话
那么是什么样的这个实际的原因是什么? (因为你勾选了一个答案,但没有真正解释) – lulalala 2013-11-22 08:02:31
答案对我提问的问题是正确的,但是我的问题最终与我的问题 – chris 2013-12-05 16:00:01