gpt4 book ai didi

ruby-on-rails - 测试 Rails 中 cookie 值的清除?

转载 作者:行者123 更新时间:2023-12-02 17:47:57 25 4
gpt4 key购买 nike

如何在功能测试中发送 cookie?如何测试以确保 cookie 已被清除?

我使用 TDD 为 Rails 应用程序构建模型取得了巨大成功,但在 Controller 测试方面遇到了障碍:我可以在测试中设置一次 cookie 值并读取它们,但我无法清除他们。即:

test "clears cookie" do
get :set_it, :stuff => {'key' => 'value'} # stuff to cookify
assert cookies['key'] == 'value' # works fine

get :clear_it # cookie doesn't get sent. How do I simulate this?
assert nil == cookies['key'], 'Cookie not cleared' # fails
end

rails 测试指南没有提到如何在测试中模拟发送 cookie,只是提到如何验证数据是否已在服务器上设置。我知道我之前遇到过这样的情况:在发送响应之前,服务器上的 cookie 数据不会更改。这就是这里发生的事情吗?我有点希望功能测试能够更好地“成为客户”。

这是一个众所周知的问题吗?人们是否已经放弃使用 JUnit 来完成这种事情了?我真的很希望能够使用一个框架来处理我的所有或几乎所有 tdd。

<小时/>

纯粹的绝望和猜测让我乐观地尝试@response.cookies,但这也不起作用。

最佳答案

如果您想专门针对 cookie 的取消设置进行单元测试,那么您实际上是在测试响应是否包含将 cookie 设置为空的 header 。我假设您的 get :clear_it 正在执行 cookies.delete :cookie-name 。这会将response.header 设置为包含Set-[COOKIE-NAME]=;。因此,如果其他方法失败,您可以直接查找该字符串。

您的代码中看起来可疑的地方是您只是直接检查 cookie。您的“获取”请求的响应在哪里?

如果一切都失败了,您还可以使用 webrat 的集成测试,如所述 here 。这可能不如单元测试那么好,但它至少会检查功能。

关于ruby-on-rails - 测试 Rails 中 cookie 值的清除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929515/

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