assertRaisesRegex تبحث عن مطابقة في str للاستثناء؛ النجاح لا يعني مطابقة الرسالة كاملة. [1] [2]
الخلاصة السريعة
لا؛ يكفي جزء مطابق في مثالنا. [1] [2]
- assertRaisesRegex تبحث عن مطابقة في str للاستثناء؛ النجاح لا يعني مطابقة الرسالة كاملة. [1] [2]
- على CPython 3.12.14، tc=TestCase() وmessage="leaf bud seed"؛ الاستثناء ValueError. [1] [2]
- النمط "bud" يمر؛ str(own.exception) تعيد "leaf bud seed". [1] [2]
- النمط "^bud$" مع الرسالة نفسها يسبب AssertionError، رغم رفع ValueError المطلوبة. [1] [2]
- تحكم: "^bud$" يمر مع رسالة "bud". نختبر رسائل ASCII بلا أسطر جديدة، ونوع الاستثناء نفسه في الحالات الثلاث. [1] [2]
البحث في الرسالة
assertRaisesRegex تبحث عن مطابقة في str للاستثناء؛ النجاح لا يعني مطابقة الرسالة كاملة. [1] [2]
استثناء ورسالة
على CPython 3.12.14، tc=TestCase() وmessage="leaf bud seed"؛ الاستثناء ValueError. [1] [2]
جزء مطابق
النمط "bud" يمر؛ str(own.exception) تعيد "leaf bud seed". [1] [2]
from unittest import TestCase tc=TestCase() message="leaf bud seed" with tc.assertRaisesRegex(ValueError,"bud") as own: raise ValueError(message) print(str(own.exception)) [1] [2]

النمط المحدد والتحكم
النمط "^bud$" مع الرسالة نفسها يسبب AssertionError، رغم رفع ValueError المطلوبة. [1] [2]
try: with tc.assertRaisesRegex(ValueError,"^bud$"): raise ValueError(message) except AssertionError:print("AssertionError") with tc.assertRaisesRegex(ValueError,"^bud$"): raise ValueError("bud") print("pass") [1] [2]
تحكم: "^bud$" يمر مع رسالة "bud". نختبر رسائل ASCII بلا أسطر جديدة، ونوع الاستثناء نفسه في الحالات الثلاث. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
