如何在 Cucumber 中测试 authlogic 的 current_user?
我正在尝试在 Cucumber 中使用 authlogic 的测试助手,调用 activate_authlogic。
我们的 application_controller 有一个 current_user_session 方法。
当我们进入调试器中途时,controller
返回一个 Authlogic::TestCase::MockController
。
但是当我们调用controller.current_user_session时。
评估 nil.current_user_session
时发生错误。
这个模拟怎么突然变成了零?
这个模拟控制器知道我们的应用程序控制器的代码吗?
I am trying to use authlogic's test helpers in Cucumber, calling activate_authlogic.
Our application_controller has a current_user_session method.
When we drop into the debugger mid-story, controller
returns a Authlogic::TestCase::MockController
.
But when we call controller.current_user_session.
The error occurred while evaluating nil.current_user_session
.
How does this mock suddenly become a nil?
And does this mock controller know about our application controllers' code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道 authlogic (如果这个答案有帮助的话),但是这个模拟对象首先来自哪里? 你不应该在黄瓜故事中使用任何模拟。 Cucumber 就像一个集成测试,测试完整的 Rails Stack。
我使用它来确保我的视图、控制器和模型规格没有相互偏离。
I don't know authlogic (and if this answer is helpful at all), but where does that mock object come from in the first place? You shouldn't be using any mocks in you cucumber stories. Cucumber is like an integration test, testing the complete Rails Stack.
I use it, to make sure, that my view, controller and model specs haven't diverged from each other.