Tag: capybara

在何处/如何包含用于水豚集成测试的辅助方法

我正在使用capybara进行集成/验收测试。它们位于/spec/requests/文件夹中。现在我在验收测试中使用了一些辅助方法。一个例子是register_user ,看起来像这样 def register_user(user) visit home_page fill_in ‘user_name’, :with => user.username fill_in ‘password’, :with => user.password click_button ‘sign_up_button’ end 我想在几种不同的验收测试中使用这种方法(它们在不同的文件中)。 包含此内容的最佳方式是什么? 我已经尝试将它放在spec/support/但它并没有为我工作。 花了一些时间后,我意识到我甚至不知道这是否是一个好方法,所以我想我会在这里问。 注意:我使用的是rails 3,spork和rspec。

为什么即使我删除了application.js文件,Capypara + Rspect测试仍然通过?

我有rails应用程序,并在application.js文件中有一些ajax调用。 O有rspec,capybara,webkit,factorygirl和databasecleaner进行测试。 我写了所有通过的function测试。 然后不小心删除了application.js文件并运行测试,它们仍然通过。 请帮我找出原因。 非常感谢。 PS:如果你请问我的问题,请至少告诉我原因。 我一直在寻找答案但找不到答案。

使用Capybara / Selenium Webdriver测试HTML5文件上传 – Ruby

我有一个简单的模态,其中显示用户显示浏览按钮以添加要上载的文件。 由于一个未知的问题,因此它是一个HTML5文件输入因此浏览器添加自己的function,这已成为一个痛苦的测试。 在我的页面上,我有: Capybara提供开箱即用的解决方案: attach_file <>, <> 在幕后执行send_keys命令将file_path推送到此输入的路径容器中,但是这对我的设置无效。 我在Windows 8上运行Firefox 25.0.1。我尝试了相对路径和该文件的完整路径,包括前向和反斜杠组合。 当我的意思是它不起作用时,我的意思是当我的ajax脚本通过点击旁边的“上传”按钮执行时,它不会在参数中发送任何文件对象。 我甚至尝试使用capybara直接发送文件路径: find_field(<>).native.send_keys(<>) 接下来,是尝试使用selenium将其推入使用: element = driver.find_element(:id, <>) element.send_keys <> 然后我尝试执行脚本以确保元素可见,然后设置它: element = page.execute_script( “document.getElementById(‘#{<>}’).style.visibility = ‘visible’; document.getElementById(‘#{<>}’).style.height = ’20px’; document.getElementById(‘#{<>}’).style.width = ’60px’; document.getElementById(‘#{<>}’).style.opacity = 1; return document.getElementById(‘#{<>}’)”) find_field(field_locator).native.send_keys(<>) 这也不起作用。 现在我完全卡住了。 所有这里的帮助和谷歌指向使用上述,但它只是不适用于我的设置。 我可以看到我的选择是使用Windows自动化脚本并跳出水豚,运行脚本,然后继续,或者直接从capybara使用post调用上传URL或调用当前的js ajax可以。

以前可以使用:全部用水豚吗?

我有一个这样的描述块: describe “Documents” do subject { page } let (:course) { FactoryGirl.create(:course) } describe “new” do before do visit new_course_document_path(course) fill_in “Name”, with: “TestDocument” attach_file “Original document”, “#{Rails.root}/spec/fixtures/03_GUI_concurrency.pdf” end it { should have_selector(‘title’, text:”Upload document”)} it { should have_selector(‘h1’, text:”Upload document”)} describe “when clicking upload” do before { click_button “Upload Document” } it “should have […]

如何在rspec测试中定义一个可以由辅助函数接收的简单全局变量

我无法弄清楚如何在rspec测试中使用一个简单的全局变量。 这看起来像是一个微不足道的function,但经过一番戏剧性的努力,我找不到解决方案。 我想要一个可以在主要规范文件和辅助规范文件中的函数中访问/更改的变量。 这是我到目前为止: require_relative ‘spec_helper.rb’ require_relative ‘helpers.rb’ let(:concept0) { ” } describe ‘ICE Testing’ do describe ‘step1’ do it “Populates suggestions correctly” do concept0 = “tg” selectConcept() #in helper file. Sets concept0 to “First Concept” puts concept0 #echos tg?? Should echo “First Concept” end end 。 #helpers.rb def selectConcept concept0 = “First Concept” end […]

Capybara + RSpec仅在控制器规格中看到空白页。 为什么?

我正在尝试为简单的控制器编写控制器规范。 但是,Capybara没有看到任何页面内容。 但是,在浏览器中查看网站的页面效果很好。 我究竟做错了什么? 谢谢! 我的控制器规格 我的spec_helper.rb 我的Gemfile

如何使用Rspec和Capybara测试重定向

我不知道我做错了什么,但每次我尝试测试重定向时,都会收到此错误:“@request必须是ActionDispatch :: Request” context “as non-signed in user” do it “should redirect to the login page” do expect { visit admin_account_url(account, host: get_host(account)) }.to redirect_to(signin_path) end end 1) AdminAccountPages Admin::Accounts#show as non-signed in user should redirect to the login page Failure/Error: expect { visit admin_account_url(account, host: get_host(account)) }.to redirect_to(signin_path) ArgumentError: @request must be an ActionDispatch::Request […]

检查为什么ruby脚本挂起

有时我的规格可能会挂起,我必须杀死相应的ruby进程。 当我运行用capybara和webkit驱动程序编写的集成规范时,这很常见。 是否可以检查给定的ruby过程并查看它挂在哪里? 哪种方法,操作,文件,行号等

如何在Capybara和RSpec中测试CSV文件下载?

以下是在控制器中: respond_to do |format| format.csv { send_data as_csv, type:’text/csv’ } end 在规格: click_link ‘Download CSV’ page.driver.browser.switch_to.alert.accept expect( page ).to have_content csv_data 但这不起作用: Failure/Error: page.driver.browser.switch_to.alert.accept Selenium::WebDriver::Error::NoAlertPresentError: No alert is present 我看到“保存文件”对话框显示,但显然它不是“警告”对话框。 如何单击确定并让Capybara查看数据?

使用Rspec + Capybara在Rails中测试错误页面

在Rails 3.2.9我有自定义错误页面定义如下: # application.rb config.exceptions_app = self.routes # routes.rb match ‘/404’ => ‘errors#not_found’ 哪个效果如预期。 当我在development.rb设置config.consider_all_requests_local = false时,在访问/foo时我得到了not_found视图 但是如何用Rspec + Capybara测试呢? 我试过这个: # /spec/features/not_found_spec.rb require ‘spec_helper’ describe ‘not found page’ do it ‘should respond with 404 page’ do visit ‘/foo’ page.should have_content(‘not found’) end end 当我运行此规范时,我得到: 1) not found page should respond with 404 page Failure/Error: […]