هل يمكنني تجاوز المهمة: البيئة في Test_Helper.rb لاختبار مهام أشعل النار؟

StackOverflow https://stackoverflow.com/questions/925407

  •  06-09-2019
  •  | 
  •  

سؤال

لدي سلسلة من مهام أشعل النار في Rakefile التي أرغب في اختبارها كجزء من مواصفي وما إلى ذلك. يتم تعريف كل مهمة في النموذج:

task :do_somthing => :environment do
  # Do something with the database here
end

حيث: تقوم مهمة البيئة بإعداد اتصال قاعدة بيانات ActiviverCord / DataMapper. أنا لا أستخدم هذا كجزء من القضبان ولكن لدي سلسلة من الاختبارات التي أحب تشغيلها كجزء من BDD.

يوضح هذا المقتطف كيف أحاول اختبار مهام أشعل النار.

def setup
  @rake = Rake::Application.new
  Rake.application = @rake
  load File.dirname(__FILE__) + '/../../tasks/do_something.rake'
end

should "import data" do
  @rake["do_something"].invoke
  assert something_in_the_database
end

لذلك طلبي للمساعدة - هل من الممكن ركوب المهمة: مهمة البيئة في ملف Test_Helper.rb الخاص بي، لذا فإن اختبار أشعل النار يتفاعل مع قاعدة بيانات الاختبار الخاصة بي، بدلا من الإنتاج؟ لقد حاولت إعادة تعريف المهمة في ملف المساعد، لكن هذا لا يعمل.

أي مساعدة للحل سيكون رائعا، كما كنت عالقا في هذا الأسبوع الماضي.

هل كانت مفيدة؟

المحلول

كان "الحل" الخاص بي لمشكلة مماثلة لاستخراج جميع المنطق من ملفات .rake الخاصة بي وإنشاء فئات لإجراء المهام، مما يترك مجرد مكالمة سطر واحد في ملف أشعل النار، والذي شعرت بالثقة في عدم الاختبار بجد. ثم يتم اختبار الفصول بشكل طبيعي.

لا أعرف جيدا كيف سيقف هذا على مجموعة معقدة من المهام المترابطة التي تحافظ على بعض الولاية البعيدة المدى: ربما لا تكون جيدا، ولكن مرة أخرى من شأنها أن تكون مؤشرا على بعض مشكلة التصميم الأخرى ...

أنا فضولي لمعرفة ما إذا فاتني شيئا أفضل.

تحرير: اعتادت أن تكون وظيفة بلوق هنا هذا (أ) يقول نفس الشيء و (ب) يقول أنه أفضل. يبدو أنه قال ذلك أولا، أيضا.

نصائح أخرى

أعتقد أنك تبحث عن هذا الخط: تتطلب (file.join (Rails_root، التكوين "،" البيئة ")) هو بالضبط ما تجده في تنفيذ" المهمة: البيئة "

يمكنني استخدامها لاختبار مهام أشعل النار باستخدام RSPEC

عندما تقوم بتشغيل اختبارات البيئة هي أنه يتم تحميله هو اختبار.

لذلك أنت تفاعل مع قاعدة بيانات الاختبار فقط.

لذلك لا أرى أي سبب لتجاوز مهمة أشعل النار في Test_Helper.rb

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top