سؤال

هل من الممكن استخدام cxxunit أو أي إطار اختبار وحدة آخر (باستثناء qttestlib) لاختبار عناصر واجهة المستخدم QT؟

إذا كانت الإجابة بنعم ، فهناك سؤالان آخران:

  1. كيف؟
  2. بما أنني أقوم بتشغيل اختبارات الوحدة باستخدام Valgrind ، هل يمكن لهذا الإبلاغ عن بعض الأخطاء؟
هل كانت مفيدة؟

المحلول

نعم ، يجب أن يكون ممكنا. لست متأكدًا من CXXUNIT على وجه التحديد ، ولكن من الممكن نظريًا.

  1. لاختبار كائنات QT بشكل صحيح ، ربما ستحتاج إلى إنشاء/تدمير كائن QAPPlication في وظائف الإعداد والدموع العالمية. ما لم تقم باختبار وظائف Qapplication على وجه التحديد ، يجب عليك فقط إنشاء واحدة لجهاز تطبيق الاختبار بالكامل. سيسمح لك ذلك باختبار أجزاء من منطق القطعة ، ولكن ليس من السهل ظهور أو تفاعل واجهة المستخدم للعناصر واجهة المستخدم. أيضًا ، قد يعتمد اختبار بعض العناصر على تشغيل حلقة حدث التطبيق ، والتي ستكون أكثر صعوبة.
  2. يجوز لـ Valgrind الإبلاغ عن بعض الأخطاء. قد يقوم أيضًا بالإبلاغ عن أخطاء في رمز QT ، ولا سيما التخصيصات الثابتة التي تركت لتطبيق Teardown لاستعادة.

نصائح أخرى

إذا كنت ترغب في اختبار واجهة المستخدم الخاصة بك ، أقترح استخدام أداة اختبار واجهة المستخدم مثل سحق. اختبارات الوحدة أجدها أكثر ملاءمة لاختبار المنطق وراء الأدوات المصغرة ، وليس عناصر واجهة المستخدم نفسها. إذا كنت ترغب حقًا في اختبار استخدام أجهزة تعويضات QT الخاصة بك ، فلا أعتقد أن هناك حلًا أفضل من QTTestlib.

فالغريند: هناك أ البرنامج المساعد Valgrind لـ Squish. لم أستخدم ذلك بنفسي. يمكن بالطبع بسهولة تشغيل اختبارات الوحدة الأخرى في Valgrind ، على الرغم من أنني لا أعرف أي حل يقوم بأتمتة هذا بالكامل. يجب على المرء أن يتأكد من قمع جميع التحذيرات من الخارج عن رمز بحيث لا يثير بعض الأخطاء في EG X11 LIBS اختبار الوحدة للفشل.

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