модуль ActionDispatch::Integration::Runner
Константы
- APP_SESSIONS
Атрибуты
app[R]
Открытые методы класса
# File actionpack/lib/action_dispatch/testing/integration.rb, line 333 def initialize(*args, &blk) super(*args, &blk) @integration_session = nil end
Вызывает метод суперкласса
Открытые методы экземпляра
# File actionpack/lib/action_dispatch/testing/integration.rb, line 353
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) && app.routes.is_a?(ActionDispatch::Routing::RouteSet)
include app.routes.url_helpers
include app.routes.mounted_helpers
end
}
klass.new(app)
end # File actionpack/lib/action_dispatch/testing/integration.rb, line 420 def default_url_options integration_session.default_url_options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 424 def default_url_options=(options) integration_session.default_url_options = options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 343 def integration_session @integration_session ||= create_session(app) end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 396
def open_session
dup.tap do |session|
session.reset!
session.root_session = self.root_session || self
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 349 def reset! @integration_session = create_session(app) end
Сбросить текущую сессию. Это полезно для тестирования нескольких сессий в одном тесте.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.