модуль ActionDispatch::Integration::Runner
Константы
- APP_SESSIONS
Атрибуты
app[R]
Публичные методы класса
# File actionpack/lib/action_dispatch/testing/integration.rb, line 324 def initialize(*args, &blk) super(*args, &blk) @integration_session = nil end
Вызывает метод суперкласса
Публичные методы экземпляра
# File actionpack/lib/action_dispatch/testing/integration.rb, line 344
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 413 def default_url_options integration_session.default_url_options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 417 def default_url_options=(options) integration_session.default_url_options = options end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 334 def integration_session @integration_session ||= create_session(app) end
# File actionpack/lib/action_dispatch/testing/integration.rb, line 389
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 340 def reset! @integration_session = create_session(app) end
Сбросить текущую сессию. Это полезно для тестирования нескольких сессий в одном случае теста.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.