我正在测试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[:user_id].nil?
后,false
不会从true
更改为log_out
这怎么可能?