在rspec测试中运行log_out时,rails中的会话哈希会话[:user_id]不会被重置

时间:2017-03-09 08:17:43

标签: ruby-on-rails ruby session rspec session-cookies

我正在测试log_out模块中的SessionsHelper方法,如Hartl的教程中所示Basic Login - Hartl Rails tutorial

以下是我的rspec代码:

expect { helper.log_out }.to change( session[:user_id], :nil? ).from(false).to(true)

错误:

1) SessionsHelper#log_out empties session[:user_id]
 Failure/Error: expect { helper.log_out }.to change( session[:user_id], :nil? ).from(false).to(true)
   expected #nil? to have changed from false to true, but did not change

我基本上使用Object属性观察匹配器来测试它。

我试过通过测试并验证会话[:user_id]设置为nil:

Session byebug

但是,运行测试表明,在运行session[:user_id].nil?后,false不会从true更改为log_out

这怎么可能?

0 个答案:

没有答案