Module: Cucumber::Rails
- Defined in:
- lib/cucumber/rails/world.rb
Defined Under Namespace
Classes: World
Class Method Summary collapse
Class Method Details
.bypass_rescue ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/cucumber/rails/world.rb', line 69 def self.bypass_rescue ActionController::Base.class_eval do alias_method :rescue_action_without_bypass, :rescue_action def rescue_action(exception) raise exception end end begin ActionController::Failsafe.class_eval do alias_method :failsafe_response_without_bypass, :failsafe_response def failsafe_response(exception) raise exception end end rescue NameError # Failsafe was introduced in Rails 2.3.2 ActionController::Dispatcher.class_eval do def self.failsafe_response(output, status, exception = nil) raise exception end end end end |
.use_transactional_fixtures ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/cucumber/rails/world.rb', line 39 def self.use_transactional_fixtures unless ::Rails.configuration.cache_classes warn "WARNING: You have set Rails' config.cache_classes to false (most likely in config/environments/test.rb). This setting is known to break Cucumber's use_transactional_fixtures method. Set config.cache_classes to true if you want to use transactional fixtures. For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165." end World.use_transactional_fixtures = true if defined?(ActiveRecord::Base) $__cucumber_toplevel.Before do @__cucumber_ar_connection = ActiveRecord::Base.connection if @__cucumber_ar_connection.respond_to?(:increment_open_transactions) @__cucumber_ar_connection.increment_open_transactions else ActiveRecord::Base.__send__(:increment_open_transactions) end @__cucumber_ar_connection.begin_db_transaction ActionMailer::Base.deliveries = [] if defined?(ActionMailer::Base) end $__cucumber_toplevel.After do @__cucumber_ar_connection.rollback_db_transaction if @__cucumber_ar_connection.respond_to?(:decrement_open_transactions) @__cucumber_ar_connection.decrement_open_transactions else ActiveRecord::Base.__send__(:decrement_open_transactions) end end end end |