我正在努力将一大堆黄瓜功能从Webrat迁移到Capybara,我遇到了很多问题。主要(也是最痛苦的)问题是围绕cookie。
第一个问题是“如何设置cookie”,因为有各种功能可以设置cookie(一些用于登录,一些用于设置引用代码等)。我们通过借用show me the cookies gem中的一些代码来解决这个问题。
下一个问题是,有时服务器会删除cookie,但我们发现的问题是Cucumber(或Capybara对此负责?)不会将cookie重置为服务器在后续请求中返回的内容。
起初我以为我可以通过执行AfterStep
清除cookie并将它们设置为标题'Set-Cookie'中服务器返回的内容来解决这个问题。
不幸的是,在处理重定向时这不起作用,因为在调用AfterStep
之前,Cucumber / Capybara会遵循重定向,从而导致功能失败。
这非常困难,我们将非常感谢任何帮助。以下是一些相关的环境信息:
gem 'rails', '2.3.10'
gem 'cucumber', '0.10.7'
gem 'cucumber-rails', '0.3.2'
gem 'capybara', '0.4.1.2'