السخرية من قيمة الإرجاع للوظائف/المرشحات والمزيد لاختبار WordPress باستخدام PHPUnit.
تعد كتابة الاختبارات باستخدام WordPress أمرًا مؤلمًا نظرًا لأن اختبارات وحدة WordPress الرسمية القديمة جدًا تتطلب دائمًا الكثير من التدريب العملي للمشاريع المخصصة وتحاول أطر الاختبار الأخرى السخرية من WordPress. الحل هو الحصول على حزمة اختبارات تكامل لطيفة ...
عموما الهدف هو البساطة وعدم إضاعة الوقت (بالنسبة لي ولكم).
تحميل أو فقط
composer install --dev pretzlaw/wp-integration-test
إلى جانب PHP وWordPress، لا نطلب الكثير (راجع Packagist.org لمزيد من التفاصيل):
إذا بدأت من الصفر ولم يكن لديك بعض التمهيد بالفعل، فيمكنك استخدام التمهيد الخاص بنا على النحو التالي:
< phpunit bootstrap = " vendor/Pretzlaw/WPInt/bootstrap.php " >
< testsuites >
< testsuite name = " default " >
<!-- CHANGE THIS TO WHERE YOUR PHPUNIT TEST CLASSES ARE -->
< directory >lib/tests</ directory >
</ testsuite >
</ testsuites >
</ phpunit >
استخدام bootstrap.php هذا ليس إلزاميًا. لا تتردد في إنشاء ملف تمهيد مخصص، عندما تحتاج إلى اختبار واجهة سطر الأوامر (CLI) والأشياء الإدارية أيضًا.
إذا كنت تعرف PHPUnit بالفعل، فلا ينبغي أن يكون التأكيد والسخرية شيئًا جديدًا. باستخدام WPInt يمكن إجراء معظم اختبارات PHPUnit عن طريق إضافة سمة واحدة:
class FooTest extends PHPUnit Framework TestCase {
use Pretzlaw WPInt Traits WordPressTests;
function testBar () {
// Assertions (simple or with special constraints)
static :: assertActionHasCallback ( ' init ' , ' my_own_init ' );
static :: assertShortcodeHasCallback (
[ new IsInstanceOf ( MyOwn::class ), ' some_method ' ],
' my_shortcode '
);
// Mock posts or meta-data
$ this -> mockGetPost ( 1337 )-> andReturn ( / * your wp post mock */ );
$ this -> mockPostMeta ( ' some_key ' )-> andReturn ( ' Some value! ' ); // For all posts
$ this -> mockMetaData ( ' my-own-cpt ' , ' another_key ' , 1337 )-> andReturn ( ' ec ' ); // Just for ID 1337
// Mock actions, filter, cache, ...
$ this -> mockFilter ( ' user_has_cap ' )
-> andReturn ( true );
$ this -> mockCache ()
-> shouldReceive ( ' get ' )
-> with ( ' my_own_cache ' )
-> andReturn ( ' yeah ' );
// Or use one of several shortcuts and helper
$ this -> disableWpDie ();
}
}
كما ترون أعلاه، نحن نستخدم mockery/mokery:~1 وهو أسهل في الاستخدام والصيانة ولكنه يستخدم أسماء طرق مختلفة (على سبيل المثال، shouldReceive
andReturn
كما رأينا أعلاه).
wp_die()
لا تتردد في طلب ميزات إضافية أو الإشارة إلى المزيد من الاختصارات الشائعة عن طريق فتح مشكلة.
حقوق الطبع والنشر لعام 2021 مملوكة لشركة بريتزلاو (rmp-up.de)
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.