当运行我的规格与RSpec&水豚,它不能find水豚的访问方法。 是否有另一个我需要做的初始化步骤? $bundle exec rspec spec /home/brian/projects/expense_track/expense_track/spec/requests/homepage_spec.rb:6:in `block (2 levels) in <top (required)>': undefined method `visit' for #<Class:0xb6572b8> (NoMethodError) 的Gemfile: group :test, :development do gem "rspec-rails" gem "capybara" end 我的spec_helper.rb的顶部: # This file is copied to spec/ when you run 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' require 'capybara/rspec' require 'rspec/autorun' […]
我想在我的代码中有不同的Capybara等待时间,取决于他们通常需要花费多less时间才能完全加载? 我是否必须反复改变Capybara.default_wait_time或者有更好的方法?
我正试图在Ruby中使用cucumber + capybara来处理BDD web开发,而且我陷入了一个简单的任务 – 只是检查表中的行数。 我试图达到的目的是沿着以下方向: page.should have_xpath("//table[@id='myTable']") find("//table[@id='myTable']/tr").length.should == 3 但是这不起作用(缺less方法长度),我无法find一种方法来对表长度断言。 任何想法任何人(请容易对我来说,我是一个ruby诺贝) 提前致谢 尼尔
当我向他们添加“:js => true”时,我在一些testing中遇到类似的错误。 例如: An error occurred in an after hook ActionController::RoutingError: No route matches [GET] "/assets" occurred at /Users/appletart/.rvm/gems/ruby-1.9.3-p0@eventful2/gems/actionpack-3.2.5/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 我之前并没有在我的应用程序中testing启用JavaScript的东西,而只是通过升级到Capybara 2并安装数据库清理程序而设置了这样做。 config.use_transactional_fixtures = false,我已经在我的spec_helper文件中添加了一些前/后钩子(hooks?),我直接从接受的答案复制到这里 。 我在跑: Rails 3.2.5 Rspec-rails 2.12.2。 任何人都可以告诉我如何能攻击这个? 非常感谢! 4) Event pages 'CREATE' submitting a valid form provides a success notification and displays new event's page Failure/Error: Unable to find […]
如何使用Capybara来检查select框是否具有列为选项的某些值? 它必须与Selenium兼容… 这是我有的HTML: <select id="cars"> <option></option> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> 这是我想要做的: Then the "cars" field should contain the option "audi"
有人可以解释这两个平台之间的区别吗? 既是BDD的一部分,但为什么我应该使用一个或其他,或两者在一起? 感谢您的答案
我想检查一下checkbox是否使用黄瓜和水豚检查。 我已经检查了上一步中的checkbox,并希望通过获取checkbox的值来validation它。
不确定这是不是一个水豚问题,但我刚做了一个新的安装Rails(4.1.1)和Rspec Rails(3.0.1),我想使用水豚(2.3.0),但从来没有使用过,遇到问题。 我在spec / features中创build了一个“spec”, 规范本身按照预期运行并通过,但是当rspec运行时,我得到了下面的“警告”。 有任何想法吗? 我只需要禁用ruby级别的警告或什么? /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/mail-2.5.4/lib/mail/network/delivery_methods/sendmail.rb:53: warning: shadowing outer local variable – to /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247: warning: loading in progress, circular require considered harmful – /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/capybara-2.3.0/lib/capybara.rb from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/bin/ruby_executable_hooks:15:in `<main>' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/bin/ruby_executable_hooks:15:in `eval' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/bin/rspec:23:in `<main>' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/bin/rspec:23:in `load' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/rspec-core-3.0.0/exe/rspec:4:in `<top (required)>' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:38:in `invoke' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:70:in `run' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:85:in `run' from /Users/typeoneerror/.rvm/gems/ruby-2.1.2@doki/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:97:in `setup' […]
我需要使用Open :: URI从我的应用程序下载一个csv文件,并为此我需要给它一个完全合格的URI。 那么最好的办法是在我的黄瓜脚本中获得主机和更重要的端口? 注意我正在使用水豚和selenium
我有一个应用程序,使用子域来切换数据库(多租户)。 我正在尝试使用Capybara进行集成testing,它确实依赖于子域。 我的理解是,设置Capybara.default_host=将使所有的请求来自这个主机。 这似乎并非如此。 在这篇文章中 ,作者build议只需访问一个主机的显式url,但是如果我正在浏览所有的地方,这会变得有点烦人。 我想设置主机,然后能够按预期使用我的导轨path。 不知道我做错了什么,但这是我所尝试的: # spec_helper.rb RSpec.configure do |config| config.before(:each, :type => :request) do Capybara.default_host = 'http://app.mydomain.com' end end # in some_integration_spec.rb before do puts "Capybara.default_host: #{Capybara.default_host}" puts "some_app_url: #{some_app_url}" end 这产生了输出: Capybara.default_host: http://app.mydomain.com some_app_url: http://www.example.com/some_path 我究竟做错了什么? default_host似乎什么都不做。 正如我所说,我不想说visit(Capybara.default_host + some_app_path) ,因为每次都有点烦人。 为什么这个default_host选项存在?