سؤال

متى يجب استخدام المواصفات لتطبيق القضبان وعندما يكون الخيار (قصص rspec السابقة)؟ أنا أعرف كيف يعمل كل من العمل والمواصفات بنشاط، بالطبع. لكنه لا يزال يبدو غريبا لاستخدام الخيار. عرضي الحالي في هذا، هو أنه مناسب لاستخدام الخيار عند تنفيذ تطبيق العميل ولا يفهم كيف من المفترض أن يعمل النظام بأكمله بعد.

ولكن ماذا لو كنت أفعل مشروعي الخاص؟ لمعظم الوقت، أعرف كيف تتفاعل أجزاء النظام. كل ما أحتاج إليه هو كتابة مجموعة من اختبارات الوحدة. ما هي المواقف الممكنة عندما أحتاج إلى خيار إذن؟

وكما سؤال الثاني المقابل: هل يجب أن أكتب المواصفات إذا كتبت قصص الخيار؟ لن يكون الاختبار المزدوج من نفس الشيء؟

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

المحلول

إذا لم تقم بذلك بالفعل، فقد ترغب في التحقق من مقال دان نورث الممتاز، ما في قصة؟ كنقطة بداية.

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

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

إذا كنت تعمل منفردا، فقد لا يكون جانب الاتصال مثيرا للاهتمام بالنسبة لك، ولكن قد يكون اختبار التكامل الذي تحصل عليه من الخيار. إذا كنت تستفيد من Webrat., ، يمكن أن يكون الكتابة الخيار سريعا وغير مؤلم لكثير من وظائفك الأساسية.

نصائح أخرى

فكر في الأمر كدورة:

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

تأخذي هي أنه من الفكرة السيئة استخدام الخيار في معظم المواقف بسبب التكاليف في إنتاجية بناء جملةها. كتبت على نطاق واسع في الموضوع في لماذا تهتم مع اختبارات الخيار؟

تعد قصة الخيار أكثر وصفا للمشكلة الكلية أن التطبيق الخاص بك هو حل، بدلا من وجود أجزاء فردية من التعليمات البرمجية (أي اختبارات الوحدة).

نظرا لأن ABIE تصف، فهي قائمة بالمتطلبات التي يجب أن يجتمع فيها التطبيق، وهي مفيدة للغاية للتواصل مع عميلك، بالإضافة إلى اختبارها بشكل مباشر.

في الوقت الحاضر، يمكنك استخدام RSPEC مع Capybara و Webdriver السيلينيوم وتجنب الحاجة إلى بناء والحفاظ على جميع محطات قصص الخيار والحفاظ عليها. هنا هو ما أوصي به:

  1. اكتب قصتك
  2. باستخدام RSPEC، سأخلق اختبار التكامل السابقين: المواصفات / التكامل / socks_rspec.rb
  3. ثم أود أن أخلق اختبار التكامل الذي يتضمن وصفا جديدا وحظره لكل سيناريو
  4. ثم أود أن أطلب الحد الأدنى من الوظائف التي تتطلب الحصول على اختبار التكامل وأعجع أعمق (إلى وحدات تحكم ونماذج، إلخ) أود TDD على وحدات التحكم والنماذج.
  5. أثناء عملك احتياطيا، يجب أن يمر اختبار التكامل الخاص بك ويمكنك الاستمرار في إضافة خطوات إلى اختبار التكامل
  6. كرر

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

أيضا، بمجرد أن تجد أخدودك، ستجد أنه أكثر متعة للتطوير باستخدام BDD، حتى لا تشعر بالذنب إذا كنت لا تشعر أنك تفعل ذلك مثاليا ولا تفكر في ذلك. ستقوم بعمل ممتاز!

ولكن ماذا لو كنت أفعل مشروعي الخاص؟ لمعظم الوقت، أعرف كيف تتفاعل أجزاء النظام. كل ما أحتاج إليه هو كتابة مجموعة من اختبارات الوحدة. ما هي المواقف الممكنة عندما أحتاج إلى خيار إذن؟

ما زلت بحاجة خيار. تحتاج إلى توثيق كيفية رؤية النظام، وتحتاج إليها للتأكد من أنك لم تقم بمكافحة الوظائف عند تغيير الأشياء.

بمعنى آخر، تحتاج إلى قصص خيار لنفس الأسباب التي تحتاجها إلى اختبارات الوحدات - أنها تعمل فقط على مستوى أعلى من التجريد.

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