2007-02-12
ActionController::TestSession的bug?
关键字: rails test
我在看《Agile Web Development with rails》这本书第二版的单元测试这一章,其中在functional test这一部分,rails提供了一些模拟浏览器请求的get,post等方法,其支持参数格式例如:
get :action, {params}, {session}, {flash}
然后这本书第202页给出一个指定Session的例子为:
但是实际跑这个测试,却发现程序无论如何拿不到session[:user_id],十分纳闷,在程序里面PP.pp session,发现TestSession对象的属性@attributes{:user_id => 1}已经有了,但是就是拿不出来,奇怪,实在奇怪。
无奈只得去趴rails的ActionController::TestSession的源代码,终于在test_processor.rb里面找到,第291行:
嗯,用string做key,没有提供用symbol做key的取法,于是把上面测试代码中get这一行修改,原来是:
现在改为:
测试程序顺利通过!
问题解决了,不过我不知道这算不算一个bug啊?大家说呢?我是不是应该提交一个issue过去啊?
get :action, {params}, {session}, {flash}
然后这本书第202页给出一个指定Session的例子为:
def test_index_with_user
get :index, {}, {:user_id => users(:dave).id}
assert_equal(users(:dave).id, session[:user_id])
assert_response :success
assert_template "index"
end
但是实际跑这个测试,却发现程序无论如何拿不到session[:user_id],十分纳闷,在程序里面PP.pp session,发现TestSession对象的属性@attributes{:user_id => 1}已经有了,但是就是拿不出来,奇怪,实在奇怪。
无奈只得去趴rails的ActionController::TestSession的源代码,终于在test_processor.rb里面找到,第291行:
def [](key)
data[key.to_s]
end
def []=(key, value)
data[key.to_s] = value
end
嗯,用string做key,没有提供用symbol做key的取法,于是把上面测试代码中get这一行修改,原来是:
get :index, {}, {:user_id => users(:dave).id}
现在改为:
get :index, {}, {"user_id" => users(:dave).id}
测试程序顺利通过!
问题解决了,不过我不知道这算不算一个bug啊?大家说呢?我是不是应该提交一个issue过去啊?
评论
dunsword
2007-07-11
我也在这个问题上卡了很久
1073X
2007-04-23
以前对博主在论坛里的态度很不满意,不过看了这篇帖子,觉得博主确实有过人之处.
感谢博主提供了这么有价值的信息 !!!
感谢博主提供了这么有价值的信息 !!!
dongbin
2007-02-13
@request.session[:user_id]=users('bob').id
robbin
2007-02-13
dongbin 写道
这么调用比较少见,对session的赋值一般是写在setup里面的。或者通过调用登录的Controller来模拟登录。
那么如何在funciontal test的setup对session赋值呢?
dongbin
2007-02-13
这么调用比较少见,对session的赋值一般是写在setup里面的。或者通过调用登录的Controller来模拟登录。
axgle
2007-02-13
我也遇到了
- 浏览: 1677794 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
游乌镇
共 33 张
共 33 张
链接
最新评论
-
mod_rails尝鲜
我觉得还是mod_fcgid(不是mod_fastcgi)实际点
-- by zgd -
mod_rails尝鲜
hostingrails也已经提供mod_rails了
-- by leondu -
mod_rails尝鲜
dreamhost已经提供mod_rails了
-- by zgd -
关于JavaEye网站未来发展 ...
期待第三阶段目标的实现,但第三目标好像类似于google的云计算,建议赶紧开发, ...
-- by selectme_2008 -
总结一下大家对JavaEye网 ...
javaeye是我比较喜欢的一个网站,但盈利模式还是比较单一,让人怀疑网站是否能 ...
-- by selectme_2008






评论排行榜