модуль ActiveSupport::LogSubscriber::TestHelper
Предоставляет некоторые вспомогательные функции для тестирования подписчиков журнала, настраивая уведомления. Например, тесты подписчиков Active Record:
class SyncLogSubscriberTest < ActiveSupport::TestCase
include ActiveSupport::LogSubscriber::TestHelper
setup do
ActiveRecord::LogSubscriber.attach_to(:active_record)
end
def test_basic_query_logging
Developer.all.to_a
wait
assert_equal 1, @logger.logged(:debug).size
assert_match(/Developer Load/, @logger.logged(:debug).last)
assert_match(/SELECT \* FROM "developers"/, @logger.logged(:debug).last)
end
end
Все, что вам нужно сделать, это убедиться, что ваш подписчик журнала добавлен в Rails::Subscriber, как во второй строке кода выше. Вспомогательные функции тестирования отвечают за настройку очереди и подписок, а также за отключение цветности в журналах.
Сообщения доступны в экземпляре @logger, который является логгером с ограниченными возможностями (он фактически ничего не отправляет на ваш вывод), и вы можете собрать их, используя @logger.logged(level), где уровень — это уровень, используемый при ведении журнала, например, info, debug, warn и так далее.
Публичные методы экземпляров
# File activesupport/lib/active_support/log_subscriber/test_helper.rb, line 101 def set_logger(logger) ActiveSupport::LogSubscriber.logger = logger end
Переопределите, если вы используете другой логгер в своем подписчике журнала.
def logger ActiveRecord::Base.logger = @logger end
# File activesupport/lib/active_support/log_subscriber/test_helper.rb, line 92 def wait @notifier.wait end
Подождите публикации уведомлений.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.