草庐IT

request-specs-and-capybara

全部标签

ruby-on-rails - 如何在 Capybara 中模拟浏览器后退按钮?

我们的电子商务网站存在一个问题,即用户偶尔会点击两次“结帐”并从他们的卡中扣款两次。这是一个非常常见的错误并且很容易修复,但我想在我们的capybara设置中测试该解决方案。一旦我调用了click_button('checkout'),我是否可以假装我是一个点击浏览器后退按钮的用户,然后第二次调用click_button('checkout')? 最佳答案 你可能想试试:When(/^Igoback$/)dopage.evaluate_script('window.history.back()')end这将需要在支持javascri

ruby - 为什么 MiniTest::Spec 没有 wont_raise 断言?

Ruby的Test::Unit有assert_nothing_raised。Test::Unit已替换为MiniTest.为什么MiniTest的断言/期望与此没有任何相似之处?例如,您可以期望must_raise而不是wont_raise。 最佳答案 MiniTest确实在它的Test::Unit兼容层中实现了assert_nothing_raised,但是在它自己的测试中(MiniTest::Unit和MiniTest::Spec)它不实现任何这样的测试。原因是,程序员争辩说,测试什么都不提出不是测试任何东西;您从不期望在测试中

ruby - RSpec allow/expect 与 just expect/and_return

在RSpec中,特别是版本>=3,有什么区别:使用allow设置带有返回测试替身的参数的消息期望,然后使用expect对返回的测试替身进行断言只需使用expect设置带有参数的期望并返回测试替身还是只是语义?我知道用expect提供/指定返回值是thesyntaxinRSpecmocks2.13,但据我所知,thesyntaxchangedinRSpecmocks3使用允许。但是,在下面的(传递的)示例代码中,使用allow/expect或仅使用expect/and_return似乎产生相同的结果。如果一种语法比另一种语法更受欢迎,也许我会期望有某种弃用通知,但由于没有,这两种语法似乎

ruby - 确保元素不存在于 Capybara

使用Capybara,我需要断言表单元素不存在,例如,“那么我不应该看到“用户名”文本字段”。如果找不到元素,find会抛出异常,这是我想到的最好的方法。有没有更好的办法?Then/^Ishouldnotseethe"([^\"]+)"([^\s]+)field$/do|name,type|begin#Capybarathrowsanexceptioniftheelementisnotfoundfind(:xpath,"//input[@type='#{type}'and@name='#{name}']")#Wegethereifwefindit,sowewantthissteptof

ruby - 如何在纯 Ruby(无 Rails)中使用 Capybara?

我试图让Capybara在一个简单的Ruby脚本中运行——即没有/在Rails之外。这是脚本:require'rubygems'require'capybara'require'capybara/dsl'includeCapybaraCapybara.current_driver=:seleniumCapybara.app_host='http://www.google.com'visit('/')问题是,当我运行它时,我得到了这个错误:NameError:uninitializedconstantCapybara::Sessionattoplevelindsl.rbatline52m

ruby - 如何在 OpenURI 中指定 "http request header"

我正在尝试使用Ruby的OpenURIgem调用URL,但是它需要我在其HTTP请求header中传递某些值。知道怎么做吗? 最佳答案 根据thedocumentation,您可以将httpheader的哈希值作为第二个参数传递给open:open("http://www.ruby-lang.org/en/","User-Agent"=>"Ruby/#{RUBY_VERSION}","From"=>"foo@bar.invalid","Referer"=>"http://www.ruby-lang.org/"){|f|#...}

ruby - Rails 在最后一个之前加入逗号和 "and"的字符串列表

是否有一个标准的Rails助手可以将字符串数组(如["apple","banana","pear"])转换为"apple,banana,andpear"用于插入句子? 最佳答案 Yeahto_sentence应该工作得很好。http://apidock.com/rails/Array/to_sentence 关于ruby-Rails在最后一个之前加入逗号和"and"的字符串列表,我们在StackOverflow上找到一个类似的问题: https://stack

ruby - Rack::Request - 如何获取所有 header ?

标题是不言自明的。有什么方法可以获取header(Rack::Request.env[]除外)? 最佳答案 HTTPheader在Rackenvironment中可用。传递给您的应用:HTTP_Variables:Variablescorrespondingtotheclient-suppliedHTTPrequestheaders(i.e.,variableswhosenamesbeginwithHTTP_).Thepresenceorabsenceofthesevariablesshouldcorrespondwiththepr

ruby-on-rails - 没有参数的 request.fullpath

request.fullpath给出完整路径加上传递的任何参数,例如/page?param1=value¶m2&value如何只获取没有参数的页面?喜欢/page谢谢。 最佳答案 使用路径代替完整路径。虽然没有记录,request.path对我有用。我通常使用我的插件rails_web_console来处理请求对象。更新:正如turboladen注意到的那样,"[ActionDispatch::Request][2]继承自[Rack::Request‌][3],其中request.path为定义”。path没有记录在那里,但

ruby - 如何使用 capybara + cucumber 断言 ruby​​ 中的 html 表行数

我正在尝试使用Cucumber+capybara来掌握Ruby中的BDDweb开发,但我被困在了本应是一项简单任务的任务上——只是检查表格中的行数。我想要实现的目标是:page.shouldhave_xpath("//table[@id='myTable']")find("//table[@id='myTable']/tr").length.should==3但这不起作用(缺少方法长度),我找不到一种方法来断言表长度。任何人的任何想法(请对我放轻松'我是ruby菜鸟)提前致谢尼尔 最佳答案 即使have_css?可以解决问题,您的测