Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मेरा ऐप रिमोट डेटाबेस तक पहुंचता है। मैं इकाई परीक्षण कुशलता से कैसे चला सकता हूँ?

TL;DR:nulldb और एक परीक्षण-जागरूक मूल वर्ग का उपयोग करें

जब आप परीक्षण कर रहे हों और असली डीबी अन्यथा नलडीबी का प्रयोग करें। यहां बताया गया है:

सबसे पहले, इसे अपने Gemfile में शामिल करें:

group :development, :test do
  gem 'activerecord-nulldb-adapter', :git => 'git://github.com/nulldb/nulldb.git'
end

और फिर सामान्य bundle install

बाहरी डेटाबेस में समर्थित सभी मॉडलों के लिए आधार वर्ग परिभाषित करें:

class ExternalModel < ActiveRecord::Base
  if Rails.app.test?
    establish_connection(:adapter => :nulldb)
  else
    establish_connection(:myapp)
  end

  def readonly?; true; end
end

फिर सभी बाहरी मॉडल एक्सटर्नलमॉडल से इनहेरिट करते हैं (मुझे इसे शुरू से ही करना चाहिए था):

class ExternalUser < ExternalModel
  ...
end

परीक्षण वातावरण में चलने पर, यह बाहरी तालिका से कनेक्ट करने का प्रयास नहीं करेगा। बेशक, बाहरी उपयोगकर्ता के उदाहरण तक पहुंचने का प्रयास विफल हो जाएगा, लेकिन आप चुनिंदा रूप से एकीकरण परीक्षण के दौरान बाहरी डेटाबेस के साथ एक कनेक्शन स्थापित कर सकते हैं, या अन्यथा बाहरी मॉडल के स्टब या नकली संदर्भ स्थापित कर सकते हैं।

सबसे महत्वपूर्ण बात यह है कि मेरे सभी परीक्षण अब बहुत तेजी से चलते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस से svg आयतों को लूप करना

  2. सिम्फनी 2:सिद्धांत क्वेरी बिल्डर के साथ गैर-संबंधित तालिका में शामिल हों

  3. यदि स्थितियां अद्वितीय हैं तो MySQL अलग-अलग गणना करता है

  4. Laravel Query Builder में विभिन्न डेटाबेस से संघ के प्रश्न

  5. UTF - 8 जेपीए और ग्लासफ़िश 4.0 . के साथ