ruby - كيفية تحميل spec_helper.rb تلقائيًا في RSpec 2




rspec2 (2)

في RSpec 2 ، يكون المجلد /spec دائمًا تلقائيًا على مسار التحميل. هذا يعني أن كل ما تحتاجه هو:

require 'spec_helper'

في الجزء العلوي من ملفات المواصفات الخاصة بك. سيؤدي هذا دائمًا إلى تحميل /spec/spec_helper.rb ، وهو الحد الأدنى الذي يمكنك الحصول عليه.

هذا يعني أنك لست بحاجة إلى مقاربة فظيعة مثل:

require File.join(File.dirname(File.dirname(__FILE__)), 'spec_helper.rb')

(والذي يحتاج إلى تحديث لمستويات التعشيش المختلفة).

يمكنك أيضًا إضافة الخيار إلى ملف .rspec الخاص بك: - --require spec_helper ، والذي سيتطلب هذا الملف في كل ملف المواصفات ، دون أن يتطلب الدليل بيانًا في الأعلى.

عند تطوير الأحجار الكريمة في روبي ، أحتاج دائمًا إلى ملف يمكنني من خلاله تكوين RSpec وفقًا لاحتياجاتي وربما قبل القيام بذلك ، تتطلب بعض الوحدات المساعدة التي يجب أن تكون متوفرة في جميع الأمثلة الخاصة بي.

في تطبيقات Rails ، يتم استخدام ملف باسم spec/spec_helper.rb لذلك. الشيء الوحيد الذي يزعجني هو أنه في بيئة Rails النموذجية ، يجب عليك طلب ملف spec_helper.rb هذا في كل ملف يحتوي على أمثلة ليتم تحميله. في الماضي ، واجهت العديد من المشكلات المتعلقة بهذا الأمر والتي تتعلق بتغيير مسارات التحميل وتتطلب النسبية مسارات داخل ملفات الأمثلة.

الآن بالنسبة إلى الأحجار الكريمة الخاصة بي ، أود الحصول على طريقة لتقول RSpec فقط لطلب ملف spec_helper.rb قبل تحميل أي من ملفات الأمثلة. بغض النظر عن الحقيقة إذا قمت بالاتصال بـ rspec القابل للتنفيذ أو مهمة rake spec التي قد أعرّفها في Rakefile.

أعلم أن بإمكاني إخبار RSpec فقط بموقع spec_helper.rb الخاص بي ، فهذا يتطلب spec_helper.rb جميع ملفات الأمثلة يدويًا ، لكن أود أيضًا تجنب الصيانة الإضافية لهذا النهج.

هل هناك طريقة أجمل لإنجاز هذا؟


--require spec_helper سطر --require spec_helper تلقائيًا إلى ملف. rspec لـ RSpec 3.0 عندما تقوم rspec --init .





rspec2