الفرق بين المراجعتين لصفحة: «Laravel/testing»

من موسوعة حسوب
أنشأ الصفحة ب' <noinclude>{{DISPLAYTITLE:الاختبارات: البدء}}</noinclude> == مقدمة == بُني Laravel آخذًا الاختبارات بالحسبان؛ إذ يد...'
 
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الاختبارات: البدء}}</noinclude>
<noinclude>{{DISPLAYTITLE:مقدمة إلى التعامل مع الاختبارات في Laravel}}</noinclude>
 
== مقدمة ==
== مقدمة ==
بُني Laravel آخذًا الاختبارات بالحسبان؛ إذ يدعم Laravel الاختبارات باستخدام PHPUnit، ويهيّئ ملف <code>phpunit.xml</code> جاهز للعمل بما يناسب تطبيقك. كما دُعم إطار العمل بتوابع مساعدة لتمهيد الطريق أمام اختبار تطبيقاتك بشكل سلس وسهل.
بُني [[Laravel]] آخذًا الاختبارات بالحسبان؛ إذ يدعم [[Laravel]] الاختبارات باستخدام PHPUnit، ويهيّئ ملف <code>phpunit.xml</code> جاهز للعمل بما يناسب تطبيقك. كما دُعم إطار العمل بتوابع مساعدة لتمهيد الطريق أمام اختبار تطبيقاتك بشكل سلس وسهل.


يحتوي المجلد <code>tests</code> الخاص بتطبيقك افتراضيًّا على مجلّدين فرعيين: <code>Feature</code> و <code>Unit</code>. تمكنك اختبارات الوحدة Unit tests من التركيز على جزء صغير ومعزول من الشيفرة الخاصة بك، إذ أنّ معظم اختبارات الوحدة تركّز فقط على تابع واحد؛ بينما تستخدم اختبارات الميزات Feature tests لاختبار جزء كبير من الشيفرة، بما فيها كيفية تواصل مجموعة من الكائنات، أو حتى إمكانية إرسال طلب HTTP إلى نقطة نهاية JSON معيّنة.
يحتوي المجلد <code>tests</code> الخاص بتطبيقك افتراضيًّا على مجلّدين فرعيين: <code>Feature</code> و <code>Unit</code>. تمكنك اختبارات الوحدة Unit tests من التركيز على جزء صغير ومعزول من الشيفرة الخاصة بك، إذ أنّ معظم اختبارات الوحدة تركّز فقط على تابع واحد؛ بينما تستخدم اختبارات الميزات Feature tests لاختبار جزء كبير من الشيفرة، بما فيها كيفية تواصل مجموعة من الكائنات، أو حتى إمكانية إرسال طلب HTTP إلى نقطة نهاية JSON معيّنة.
سطر 9: سطر 8:


== البيئة ==
== البيئة ==
عند تشغيل الاختبارات باستخدام <code>phpunit</code>، سيُهيئ Laravel بيئة العمل الحالية إلى <code>testing</code>، بسبب متحولات البيئة المعرّفة في ملف <code>phpunit.xml</code>. سيقوم Laravel أيضًا بتهيئة الجلسة session وذاكرة التخزين المؤقتة إلى مصفوفة برنامج التشغيل ‎(<code>array</code> driver) أثناء الاختبار، مما يعني أنّه لن يحتفظ ببيانات الجلسة وذاكرة التخزين المؤقتة أثناء الاختبار.
عند تشغيل الاختبارات باستخدام <code>phpunit</code>، سيُهيئ [[Laravel]] بيئة العمل الحالية إلى <code>testing</code>، بسبب متحولات البيئة المعرّفة في ملف <code>phpunit.xml</code>. سيقوم [[Laravel]] أيضًا بتهيئة الجلسة session وذاكرة التخزين المؤقتة إلى مصفوفة برنامج التشغيل( ‎(array driver أثناء الاختبار، مما يعني أنّه لن يحتفظ ببيانات الجلسة وذاكرة التخزين المؤقتة أثناء الاختبار.


أنت حر بتعريف متغيرات بيئة الاختبار الأخرى إذا دعت الحاجة لذلك. يمكنك تعريف متغيرات بيئة الاختبار في ملف <code>phpunit.xml</code>، لكن تأكد من تنظيف التخزين المؤقت للإعدادات باستخدام أمر <code>artisan config:clear</code> وذلك قبل تشغيل الاختبارات.
أنت حر بتعريف متغيرات بيئة الاختبار الأخرى إذا دعت الحاجة لذلك. يمكنك تعريف متغيرات بيئة الاختبار في ملف <code>phpunit.xml</code>، لكن تأكد من تنظيف التخزين المؤقت للإعدادات باستخدام أمر <code>artisan config:clear</code> وذلك قبل تشغيل الاختبارات.
سطر 47: سطر 46:


== مصادر ==
== مصادر ==
* [https://laravel.com/docs/5.6/testing صفحة Testing: Getting Startedفي توثيق Laravel الرسمي.]
* [https://laravel.com/docs/5.6/testing صفحة Testing: Getting Started في توثيق Laravel الرسمي.]
[[تصنيف:Laravel|{{SUBPAGENAME}}]]
[[تصنيف:Laravel Testing|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 13:22، 23 أكتوبر 2018

مقدمة

بُني Laravel آخذًا الاختبارات بالحسبان؛ إذ يدعم Laravel الاختبارات باستخدام PHPUnit، ويهيّئ ملف phpunit.xml جاهز للعمل بما يناسب تطبيقك. كما دُعم إطار العمل بتوابع مساعدة لتمهيد الطريق أمام اختبار تطبيقاتك بشكل سلس وسهل.

يحتوي المجلد tests الخاص بتطبيقك افتراضيًّا على مجلّدين فرعيين: Feature و Unit. تمكنك اختبارات الوحدة Unit tests من التركيز على جزء صغير ومعزول من الشيفرة الخاصة بك، إذ أنّ معظم اختبارات الوحدة تركّز فقط على تابع واحد؛ بينما تستخدم اختبارات الميزات Feature tests لاختبار جزء كبير من الشيفرة، بما فيها كيفية تواصل مجموعة من الكائنات، أو حتى إمكانية إرسال طلب HTTP إلى نقطة نهاية JSON معيّنة.

يمكنك الاطلاع على ملف ExampleTest.php المضمّن في كلا المجلّدين Feature و Unit. بعد تثبيت مشروعك باستخدام إطار عمل Laravel، شغّل الأمر phpunit للبدء باختباراتك.

البيئة

عند تشغيل الاختبارات باستخدام phpunit، سيُهيئ Laravel بيئة العمل الحالية إلى testing، بسبب متحولات البيئة المعرّفة في ملف phpunit.xml. سيقوم Laravel أيضًا بتهيئة الجلسة session وذاكرة التخزين المؤقتة إلى مصفوفة برنامج التشغيل( ‎(array driver أثناء الاختبار، مما يعني أنّه لن يحتفظ ببيانات الجلسة وذاكرة التخزين المؤقتة أثناء الاختبار.

أنت حر بتعريف متغيرات بيئة الاختبار الأخرى إذا دعت الحاجة لذلك. يمكنك تعريف متغيرات بيئة الاختبار في ملف phpunit.xml، لكن تأكد من تنظيف التخزين المؤقت للإعدادات باستخدام أمر artisan config:clear وذلك قبل تشغيل الاختبارات.

علاوةً على ذلك، يمكنك إنشاء ملف ‎.env.testing في جذر المشروع الخاص بك. سيعيد هذا الملف تعيين الإعدادات المعرّفة في ملف ‎.env عند تشغيل اختبارات PHPUnit أو عند تشغيل أوامر artisan باستخدام الخيار ‎--env=testing.

إنشاء وتشغيل الاختبارات

لإنشاء حالة اختبار جديدة، استخدم أمر artisan make:test:

// لإنشاء حالة اختبار في مجلد الميزات.
php artisan make:test UserTest

// لإنشاء حالة اختبار في مجلد وحدات الاختبار.
php artisan make:test UserTest --unit

عندما يولَّد ملف الاختبار، يمكنك تعريف توابع الاختبار كما تقوم بالعادة باستخدام PHPUnit. ولتشغيل اختباراتك، شغل الأمر phpunit من واجهة الأوامر:

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
   /**
    * مثال بسيط عن حالة اختبار
    *
    * @return void
    */
   public function testBasicTest()
   {
       $this->assertTrue(true);
   }
}

ملاحظة: إذا قمت بتعريف التابع setUp الخاص بك، تأكد من مناداة التابع الأب parent::setUp()‎.

مصادر