تقنية

longMessage في unittest: هل تستبدل msg الرسالة القياسية؟

مخصصة فقط؛ longMessage:False; expr:False; msg:bud; AssertionError; text:bud
استبدال.

الرسالة المخصصة تستبدل القياسية هنا. [1] [2]

الخلاصة السريعة

نعم مع False؛ التأكيد يظل فاشلًا. [1] [2]

  • على CPython 3.12.14، نستدعي assertTrue مباشرةً بقيمة False ورسالة ASCII غير فارغة: bud. [1] [2]
  • longMessage=False: يفشل التأكيد وتكون الرسالة bud وحدها هنا. [1] [2]
  • longMessage=True يضم الرسالة المخصصة إلى القياسية. [1] [2]
  • تغيير الرسالة لا يحوّل False إلى نجاح؛ الاستثناء AssertionError في الحالتين. [1] [2]
  • في تحكم مستقل بـTrue، النص: False is not true : bud. [1] [2]

استدعاء محدد

على CPython 3.12.14، نستدعي assertTrue مباشرةً بقيمة False ورسالة ASCII غير فارغة: bud. [1] [2]

الاستبدال

longMessage=False: يفشل التأكيد وتكون الرسالة bud وحدها هنا. [1] [2]

الدمج

longMessage=True يضم الرسالة المخصصة إلى القياسية. [1] [2]

from unittest import TestCase own=TestCase();own.longMessage=False try: own.assertTrue(False,msg="bud") except AssertionError as ex: print(type(ex).__name__,str(ex)) [1] [2]

رسالة مدمجة؛ longMessage:True; expr:False; msg:bud; AssertionError; text:False is not true : bud
دمج.

فشل وتحكم

تغيير الرسالة لا يحوّل False إلى نجاح؛ الاستثناء AssertionError في الحالتين. [1] [2]

control=TestCase();control.longMessage=True try: control.assertTrue(False,msg="bud") except AssertionError as ex: print(type(ex).__name__,str(ex)) [1] [2]

في تحكم مستقل بـTrue، النص: False is not true : bud. [1] [2]

المراجع

  1. Python unittest
  2. CPython case

للتوسع: لغات البرمجة.

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