الاختبار القائم على الخصائص
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
test domain rules over many generated inputs with jqwik.
الموضوعات المخطط لها
- Example tests check chosen inputs; property tests state a rule that must hold for any valid input.
- jqwik generates many random inputs and shrinks failures to a minimal case.
- Good properties for Shop: total equals the sum of its lines; adding then removing an item restores the order; total is never negative.
- Define generators (
@Provide) that produce valid domain objects only. - Keep the seed from failures to reproduce them.
تفاصيل المخطط المبدئي
عرض عملي
@Property
void totalIsSumOfLines(@ForAll("orders") Order o) {
assertThat(o.total()).isEqualTo(o.lines().stream().mapToLong(Line::cents).sum());
}اختبر فهمك
What does shrinking do?
أظهر الإجابة
Reduces a failing input to the smallest one that still fails.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.