首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时使用webrat和水豚

同时使用webrat和水豚
EN

Stack Overflow用户
提问于 2011-05-17 12:13:25
回答 2查看 2.7K关注 0票数 10

我一直在使用Capybara进行集成/请求测试,但我刚刚意识到我不能用它进行视图测试。

This SO answer建议Webrat和Capybara可以同时使用;但RSpec docs建议必须在两者之间进行选择。Here's another github thread建议webrat可用于视图,而水豚可用于集成。

我发现如果我在我的gemfile中包含Webrat,我可以毫无问题地使用webrat进行视图,但是我的水豚风格的集成测试不再有效。具体地说,我在下面这个简单的例子中得到了一个错误:

代码语言:javascript
复制
it "should have a Home page at '/'" do
  visit '/'
  page.should have_selector('title', :content => "Home page")
end

我得到了错误:

代码语言:javascript
复制
No response yet. Request a page first.

最好的方法是什么(如果有的话)?为了让韦布拉特和水豚喜欢上对方?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-06 22:46:29

通常没有理由同时使用Webrat和Capybara。选择一个(可能是Capybara)。视图测试是一个糟糕的想法,通常不应该是必需的;通常,您的集成测试应该涵盖这一点。

换句话说,修复你的测试策略,问题就会消失。

票数 11
EN

Stack Overflow用户

发布于 2011-11-26 01:03:34

总的来说,我同意Marnen关于“只选择其中之一,可能是Capybara”的观点,但使用这两种语言的一个可能的原因是逐步迁移。

比方说,你有一个很大的测试套件,你正在将它迁移到Capybara,但是你想让你的一些旧测试在一段时间内保持“Webrat驱动”。

虽然,我没有为这种情况找到理想的解决方案,但我这样做了:

代码语言:javascript
复制
# features/support/env.rb
...
if ENV['WITH_WEBRAT'].nil?
    require 'capybara/rails'
    require 'capybara/cucumber'
    ...
else
    require 'webrat'
    ...
end
...

# config/cucumber.yml
...
default: --profile capybara
capybara: <% std_opts %> --tags ~@webrat features
webrat:   <% std_opts %> --tags @webrat features WITH_WEBRAT=1
...

# features/webrat.feature
@webrat
...

# features/capybara.feature
...

现在,您可以使用cucumber来运行仅限水豚的测试套件或用于遗留Webrat特性的cucumber -p webrat

不是很理想,但它对我很有效。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6026173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档