الفرضية هي مجموعة من مكتبات الاختبار التي تتيح لك كتابة اختبارات محددة بمصدر الأمثلة. يؤدي تنفيذ الفرضية بعد ذلك إلى إنشاء أمثلة بسيطة ومفهومة تؤدي إلى فشل اختباراتك. يعمل هذا على تبسيط كتابة اختباراتك ويجعلها أكثر قوة في نفس الوقت، من خلال السماح للبرنامج بأتمتة الأجزاء المملة وتنفيذها بمستوى أعلى مما يفعله الإنسان، مما يحررك للتركيز على منطق الاختبار ذي المستوى الأعلى.
غالبًا ما يُطلق على هذا النوع من الاختبارات اسم "الاختبار المبني على الخاصية"، والتنفيذ الأكثر شهرة لهذا المفهوم هو مكتبة هاسكل QuickCheck، لكن الفرضية تختلف بشكل كبير عن QuickCheck وهي مصممة لتناسب اصطلاحيًا وبسهولة أنماط الاختبار الحالية التي تريدها. معتادون على ذلك، دون الحاجة إلى الإلمام بـ Haskell أو البرمجة الوظيفية.
فرضية Python هي التطبيق الأصلي، والوحيد الذي أصبح حاليًا جاهزًا للإنتاج بالكامل ويتم صيانته بشكل نشط.
الأفكار الأساسية للفرضية هي لغة ملحدة ومن حيث المبدأ فهي مناسبة لأي لغة. نحن مهتمون بتطوير ودعم التطبيقات لمجموعة واسعة من اللغات، ولكننا نفتقر حاليًا إلى الموارد اللازمة للقيام بذلك، لذا فإن جهود النقل التي نبذلها هي في الغالب نماذج أولية.
التطبيقان النموذجيان للفرضية للغات الأخرى هما:
بالإضافة إلى ذلك هناك منفذ للمحرك الأساسي للفرضية، التخمين، إلى الصدأ. إنها ليست ميزة كاملة ولكننا نأمل على المدى الطويل في نقل الكثير من الوظائف الحالية إلى Rust وإعادة بناء Hypothesis for Python فوقها، مما يقلل بشكل كبير من جهد النقل إلى لغات أخرى.
يمكن تحويل أي منها أو جميعها إلى تطبيقات كاملة بجهد قليل نسبيًا (لا يزيد عن بضعة أشهر من العمل بدوام كامل)، ولكن بالإضافة إلى العمل الأولي، سيتطلب ذلك شخصًا مستعدًا لتوفير أو تمويل جهود الصيانة المستمرة لها لكي تكون قابلة للحياة.