هل هناك توافق في الآراء حول أطر الاختبار ل Ruby 1.9.x؟ [مغلق

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

  •  19-09-2019
  •  | 
  •  

سؤال

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

لذلك، أولا، أحضير أو اختبار :: وحدة؟ لقد أدركت فقط أن 1.9.1 الافتراضي للحضور الآن. لم أتلقيت منذ ذلك الحين أن كل الاختبار الأقدم :: البرامج التعليمية الوحدة لا تزال تعمل بشكل جيد. اذا أنت require test/unit, ، أنت في الواقع الحصول على minitest كاختبار :: محاكي الوحدة (!). كان من الممكن أن يذهب فكرتي الأولية مع الاختيار الافتراضي للحضور (بمجرد أن عرفت أنه موجود)، لكن حتى الكتب الأخيرة للغاية لا تبدو مهتمة بتدريسها. أفضل الممارسات روبي يقول "هناك اختلافات كبيرة" بين الاثنين، لكنه يختار عدم التعامل معها. كما يدير جميع اختباراته عبر اختبار :: وحدة (بالإضافة إلى بعض الوظائف الإضافية المخصصة). Pickaxe الجديد لديه أيضا القليل جدا عن التعدين في حد ذاته, وفي الفصل الخاص بالاختبار، يستخدمون أيضا إصدار مضاهاة الوحدة أيضا. لتوضيح سؤالي الأول بعد ذلك: هل تحضير الخيار الأول من الخيار الأول؟ هل يجب علي التقصير باستخدام الاختبار :: محاكي الوحدة؟

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

سألعب قليلا مع الثلاثة، لكنني فضولي لسماع أي نوع من التوافق (إن وجد) يشكل اختبارا في Ruby 1.9.

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

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

المحلول

هل هناك إجماع؟ أود أن أقول لا. هناك صوت مجتمع قوي لاستخدام TDD / BDD ولكن حتى ذلك، فإنه ليس عالميا. ربما يكون الإطار أقل أهمية من تطبيق الممارسة في المقام الأول.

أعتقد أن minitest هو استبدال 1.9 لاختبار :: الوحدة، والتي موجودة فقط كغلاف حول المكتبة الجديدة للتوافق مع المتخلف. أعتقد أن اتخاذ مسار محكم من مهندس سيكون أكثر تبحث.

RSPEC خلاصة إلى حد ما: أقل من الواضح أن الأطر "التقليدية" التي تتأثر تأثيرها. يستحق قضاء بعض الوقت لمعرفة ما إذا كنت تفضل ذلك.

هناك ايضا صراحة. وبعد على الرغم من أنني لا أعرف كيف يتم اختبارها في 1.9: فهو أكثر من التفاف / التمديد لاختبار :: وحدة، لذلك ربما يعمل، رغم ذلك.

بالطبع لا تتوقف المرح هناك: بمجرد اختيارك إطار اختبار، فأنت تريد أن يكون محرك السخرية من نوع ما. أو استبدال لاعبا اساسيا البيانات.

في جميع الحالات، أود أن أقول أي إطار يمكنك من أجله العثور على دليل على التحديثات العادية، وهي مجتمع مفتوح ومتعجل و API لا تكرهه سيفعل الوظيفة. من غير المرجح أن يتم إسقاطها لاحقا لأي خيار تفعله.

نصائح أخرى

لقد كنت أستخدم RSPEC لمدة عام أو نحو ذلك. لقد تحولت من اختبار :: وحدة على وجه التحديد لأنني أستطيع الطباعة بطريقة مقروءة بشرية ما يتم اختباره.

يقرأ مثل النثر. وهو كبير زائد بالنسبة لي. ولكن كما هو الحال مع كل شيء سوف تختلف النتائج.

describe Model do
  it "should do what I want" do
    this.should == that
    it.should be_nil
    that.should_not be_true
  end
end 

أيضا منظم إطار الاختبار يجب أن تفكر أيضا في أداة تغطية مثل RCOV.. وبعد يتكامل مع RSPEC وسيقول لك حيث يفتقر رمزك إلى الاختبار.

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

تم تصميم المناعة في Ruby 1.9. الإيجابيات IMHO هي سرعة سريعة، من السهل جدا القراءة / الكتابة للمبرمجين لغات أخرى، واختبارات تستخدم الكثير من نمط الكود نفسه الذي تستخدمه في الرمز الحقيقي الخاص بك. MINITEST لديه أكثر من ذلك بكثير من معظم الناس يعرفون، على سبيل المثال معينة المواصفات لديها مراكز BDD أقرب إلى RSPEC، والحضور وهمية هو نظام السخرية، ومختبر المعيار هو لمجموعة تنميط الأداء.

في تجربتي الشخصية، يميل الأشخاص الذين يبنون تطبيقات القضبان نحو RSPEC، والأشخاص الذين يبنونون رمز روبي نقي يميل نحو وحدة معينة، المواصفات، وهمية، معيار، وهلم جرا.

أنا شخصيا perfer rspec. لقد وجدت أن التركيز على اختباراتي حول السلوك ساعدني حقا في تحقيق ما كنت أحاول القيام به.

مع RSPEC، يمكنك الحصول على شيء مثل فتاة المصنع أو الميكانيكي لتوليد بيانات الاختبار الخاصة بك، لا تستخدم التركيبات.

فيما يتعلق بما قاله مايك، فإن مشروع RSPEC نشط إلى حد ما مع إصدار إصدارات جديدة بشكل طبيعي مع كل إصدار من القضبان للمساعدة في مواكبة تطور الإطار.

RSPEC لطيف لكنني أعتقد مؤخرا كان هناك الكثير من الحديث والحركة وراء minitest. التي تأتي مع روبي 1.9.x. لديها الكثير من النيقط من RSPEC ولكنه أصغر بكثير وموجز.

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