модуль ActionDispatch::Integration::Runner
Константы
- APP_SESSIONS
Атрибуты
app[R]
Открытые методы класса
# File actionpack/lib/action_dispatch/testing/integration.rb, line 305 def initialize(*args, &blk) super(*args, &blk) @integration_session = nil end
Вызывает метод родительского класса
Открытые методы экземпляра
# File actionpack/lib/action_dispatch/testing/integration.rb, line 325
def create_session(app)
klass = APP_SESSIONS[app] ||= Class.new(Integration::Session) {
# If the app is a Rails app, make url_helpers available on the session
# This makes app.url_for and app.foo_path available in the console
if app.respond_to?(:routes)
include app.routes.url_helpers
include app.routes.mounted_helpers
end
}
klass.new(app)
end # File actionpack/lib/action_dispatch/testing/integration.rb, line 379 def default_url_options integration_session.default_url_options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 383 def default_url_options=(options) integration_session.default_url_options = options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 315 def integration_session @integration_session ||= create_session(app) end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 392
def method_missing(sym, *args, &block)
if integration_session.respond_to?(sym)
integration_session.__send__(sym, *args, &block).tap do
copy_session_variables!
end
else
super
end
end Делегирует необработанные сообщения текущему экземпляру сессии.
Вызывает метод родительского класса
# File actionpack/lib/action_dispatch/testing/integration.rb, line 364
def open_session
dup.tap do |session|
session.reset!
yield session if block_given?
end
end Открывает новый экземпляр сессии. Если блок задан, новый экземпляр сессии передаётся в блок перед возвращением.
session = open_session do |sess| sess.extend(CustomAssertions) end
По умолчанию для вас автоматически создаётся одна сессия, но вы можете использовать этот метод для открытия нескольких сессий, которые должны быть протестированы одновременно.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 321 def reset! @integration_session = create_session(app) end
Сбрасывает текущую сессию. Это полезно для тестирования нескольких сессий в одном тесте.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 387 def respond_to_missing?(method, include_private = false) integration_session.respond_to?(method, include_private) || super end
Вызывает метод родительского класса
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.