我是测试的新手。有人可以帮助我如何在rspec中测试current_user。
示例代码:
简单的一个:
def index
@todos = current_user.todos
end
更难一点
def index
@events = current_user.participating_events.includes(
[:events_users, :participants, :user])
end
如何针对类似的问题编写rspec测试。
答案 0 :(得分:1)
因为它是集成测试,所以您应该努力进行实际登录,以便规范管理控制器创建的会话。您可以按照on this answer的想法进行操作,但基本上您需要对给定用户进行身份验证。但是你已经在做了,所以也许你遇到的问题不明白。
我在测试中注意到的一件事是event
检查了一些测试,但我无法看到它的定义。它就像你期望它以某种方式由rspec设置。如果是这样,那么这可能是您遇到的问题。对于这种规范,您应该从db加载对象以测试它们是否已创建,因此在填写表单并保存事件之后,在测试结果之前,使用
event = Event.last
然后探测它以存储值。
让我知道这是否有意义,如果这可以解决您的问题。否则,可能会尝试澄清您想要完成的任务,或者发布您所遇到的任何错误的回溯。