-
-
Notifications
You must be signed in to change notification settings - Fork 8
2017_03 Pasar pruebas request de rspec a pruebas de integración con minitest
Para convertir las pruebas que usan rspec+capybara+capybara-webkit a minitest+capybara+poltergeist+phantomjs
Instale phantomjs
(hace parte de adJ 6.0)
En el Gemfile
, en la sección de pruebas quite la gema rspec-rails
y agregue:
gem "connection_pool" gem "poltergeist" gem 'minitest-rails-capybara'
Cree el directorio test/integration
y en test/test_helper.rb
ubique el siguiente contenido:
# encoding: utf-8 ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) require 'rails/test_help' require "minitest/rails/capybara" require "capybara/rails" require "capybara/poltergeist" Capybara.javascript_driver = :poltergeist class ActiveSupport::TestCase ActiveRecord::Migration.check_pending! fixtures :all end class ActionDispatch::IntegrationTest # Ver http://www.rubytutorial.io/how-to-test-an-autocomplete-with-rails/ include Capybara::DSL require 'capybara/poltergeist' Capybara.javascript_driver = :poltergeist def teardown Capybara.current_driver = nil end end class ActiveRecord::Base # Ver https://gist.github.com/mperham/3049152 mattr_accessor :shared_connection @@shared_connection = nil def self.connection @@shared_connection || ConnectionPool::Wrapper.new(:size => 1) { retrieve_connection } end end ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
Copie las pruebas de rspec/request
a test/integration
y modifíquelas teniendo en cuenta:
- Cambiar el nombre del archivo. Por ejemplo si era
rspec/request/acceso_spec.rb
debe quedar comotest/integration/acceso_test.rb
- Cambie
require 'spec_helper'
porrequire 'test_helper'
- Ponga todas las pruebas dentro de una clase:
class AccesoTest < Capybara::Rails::TestCase ... end
- Quite los
describe
- Cambie los
it
portest
por ejemplo en lugar deit "puede crear caso" do
quedatest "puede crear caso" do
- Cambie verificaciones del estilo
expect(page).to_have_content('Administrar')
porassert page.has_content?('Administrar')
En lugar de rspec
las pruebas se ejecutan con rails test
que opcionalmente reciben el archivo que desea probar.
Cada controlador de capybara es diferente, eventualmente tendrá que modificar las pruebas para que pasen.
Desarrollado por Pasos de Jesús. Dominio público de acuerdo a legislación colombiana. Agradecemos financiación para personalizaciones de dominio público a diversas organizaciones, ver https://github.com/pasosdeJesus/sivel2/blob/master/CREDITOS.md
- Validación de etiquetas de Colombia y sus departamentos entre OSM de Sep.2022 y DIVIPOLA 2022
- Actualización a DIVIPOLA 2022-07 y Resumen ejecutivo de la actualización a DIVIPOLA 2022-07
- Actualización a DIVIPOLA 2021 y Resumen ejecutivo de la actualización a DIVIPOLA 2021
- Actualización a Rails 7
- Actualización a DIVIPOLA 2020 y Resumen ejecutivo de la actualización a DIVIPOLA 2020
- Extensiones para Chomium útiles para desarrollo
- Actualización de sip 2.0b11 a 2.0b12
- Actualización de sip 2.0b10 a 2.0b11
- Actualización de Rails 6.0 a Rails 6.1
- Resumen ejecutivo de la actualización a DIVIPOLA 2019
- Actualización a DIVIPOLA 2019
- Actualización-de-sip-2.0b6-a-sip-2.0b7
- Pasando de sprockets a webpacker con Rails 6
- Actualización a Rails 6 en 6 pasos
- Actualización a DIVIPOLA 2018
- Actualización de Rails 5.1 a Rails 5.2
- Actualizando a Rails 5
- Actualización a PostgreSQL posterior a 10.2