gpt4 book ai didi

ruby-on-rails - 是否可以验证为使用 Rails 集成测试设置了 cookie 的域?

转载 作者:行者123 更新时间:2023-11-28 21:00:02 24 4
gpt4 key购买 nike

我正在使用以下技术为我们的域设置通配符 cookie:

cookies['root_domain_flash_warning'] = {
'value' => 'mistakes have been made!',
'domain' => ".#{APP_DOMAIN}",
'expires' => 2.minutes.from_now
}

这似乎很容易工作。不幸的是,除了传递给 CookieJar#[]= 的散列中与“值”键关联的值之外,我似乎什么都找不到,因为 CookieJar#[] 实际上并没有返回传递给它的选项散列倒数法。

有谁知道在功能测试中验证已设置 cookie 的域的方法吗?

最佳答案

您可以检查可以在 @response.headers['Set-Cookie'] 中访问的 Set-Cookie header 的值。

按照这些思路尝试一些事情:

def test_something
get '/my_action'
assert_equal ["root_domain_flash_warning=mistakes+have+been+made!; domain=.mydomain.com; path=/; expires=Fri, 07-Aug-2009 11:42:21 GMT"], @response.headers['Set-Cookie']
end

不幸的是,您不能从 cookies 方法中提取这些值。在ActionController::Integration::Session#process源码(actionpack/lib/action_controller/integration.rb)中,集成测试cookie是如下流程,仅提取输入散列的 value 部分:

(@headers['Set-Cookie'] || "").split("\n").each do |cookie|
name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2]
@cookies[name] = value
end

关于ruby-on-rails - 是否可以验证为使用 Rails 集成测试设置了 cookie 的域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com