Ruby on Rails 5.2 - ActiveSupport::LogSubscriber::TestHelper

मॉड्यूल ActiveSupport :: LogSubscriber :: TestHelper




ruby

मॉड्यूल ActiveSupport :: LogSubscriber :: TestHelper

नोटिफिकेशन सेट करके लॉग ग्राहकों की टेस्टिंग से निपटने के लिए कुछ हेल्पर्स उपलब्ध कराता है। उदाहरण के लिए सक्रिय रिकॉर्ड ग्राहक परीक्षण लें:

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

आपको केवल यह सुनिश्चित करना है कि आपका लॉग सब्सक्राइबर रेल :: सब्सक्राइबर में जोड़ा गया है, जैसा कि ऊपर दिए गए कोड की दूसरी पंक्ति में है। परीक्षण सहायकों को लॉग में कतार, सदस्यता और रंग बदलने के लिए जिम्मेदार है।

संदेश @logger उदाहरण में उपलब्ध हैं, जो सीमित शक्तियों के साथ एक लकड़हारा है (यह वास्तव में आपके आउटपुट में कुछ भी नहीं भेजता है), और आप उन्हें @ logger.logged (स्तर) करते हुए इकट्ठा कर सकते हैं, जिसमें स्तर किस स्तर का उपयोग किया गया लॉगिंग, जैसे जानकारी, डिबग, चेतावनी और इतने पर।

सार्वजनिक प्रवृत्ति के तरीके

set_logger (लकड़हारा) स्रोत दिखाएं
# 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

सूचनाएं प्रकाशित होने की प्रतीक्षा करें।