Osama Kha نشر 5 ديسمبر 2022 أرسل تقرير نشر 5 ديسمبر 2022 اريد فقط عمل اختبار بسيط على دالة معينة ل جمع عددين مثلا للتأكد من القيمة الاصلية مع القيمة المتوقعة 1 اقتباس
0 Adnane Kadri نشر 5 ديسمبر 2022 أرسل تقرير نشر 5 ديسمبر 2022 يمكنك معاملة هاته الدالة كميزة. واختبارها كحالة استخدام عن طريق اختبارات الميزة في لارافيل. لنقل ان الدالة الخاصة بك يتم الاشارة اليها عن طريق المسار: Route::get('/example/{byear}' , [MyController::class ,'countAge']) ستحتاج اول الأمر انشاء حالة اختبار Test case عن طريق تنفيذ: php artisan make:test CountAgeTest ستلاحظ انشاء ملف جديد بداخل مجلد tests/Feature الخاص بتطبيق لديك. محتوى الملف سيكون مشابها لـ: <?php namespace Tests\Feature; use PHPUnit\Framework\TestCase; class CountAgeTest extends TestCase { /** * A basic test example. * * @return void */ public function test_basic_test() { $this->assertTrue(true); } } في العادة يعبر الصنف CountAgeTest عن مجموع حالات الاستخدام التي تندرج تحت هذا الهدف وهو حساب العمر. فعلى سبيل المثال يتفرع عن هذا الهدف: حالة ان يتم تقديم سنة اكبر من الحالية (2040 مثلا)، كيف نتوقع ان يتم التعامل معها؟ حالة ان يتم تقديم عدد سالب. حالة ان يتم تقديم سلسلة نصية بدل عدد. حالة ان يتم تقديم عدد عشري عوض عدد صحيح موجب. كل هاته الحالات تسمى حالات استخدام تتبع عن الهدف الأساسي الذي هو حساب العمر. (قد يمثل Task او Goal في مخططات حالات الاستخدام ان كنت معتادا على العمل في فرق). فأنت سنحتاج نمذجة هاته الحالات ومن بينها الحالة التي وصفتها. لنأخذ الخاصة بك كمثال: في لارافيل يتم وصف حالات الاختبار كتوابع تبدأ اما ب test : <?php namespace Tests\Feature; use PHPUnit\Framework\TestCase; class CountAgeTest extends TestCase { /** * */ public function test_if_age_can_be_counted() { // } } او مميزة بتعليق @test ويسمى annotation: <?php namespace Tests\Feature; use PHPUnit\Framework\TestCase; class CountAgeTest extends TestCase { /** @test*/ public function age_can_be_counted() { // } } بنية حالة الاختبار تتبع غالبا نمطا مشابها: /** @test*/ public function age_can_be_counted() { # 1 - تحضير البيانات # 2 - القيام بال action والخروج بنتيجة # 3 - استعمال التوكيدات assertions للتأكد من حصول شيء معين } مثال: /** @test*/ public function age_can_be_counted() { # 1 - تحضير البيانات $exampleByear = 1960; $ageNow = 62; # 2 - القيام بال action والخروج بنتيجة $response = $this->get('/example/'.$exampleByear); # 3 - استعمال التوكيدات assertions للتأكد من حصول شيء معين $response->assertStatus(200); // التأكد من ان كود حالة الطلب يعبر عن طلب ناجح $this->assertEquals( $response->getContent(), $ageNow ) } لاحظ استعمال التوكيد assertStatus و assertEquals وهما تابعان يوفرهما لارافيل ضمن سلسلة من التوابع يمكن الاستفادة منها لاختبار نتائج مختلفة. أخيرا، لن تحتاج الا طباعة الأمر: php artisan test أو: vendor/bin/phpunit أو: phpunit لتشغيل الاختبارات، خرج الأمر هو ما سيعبر عن اما نجاح او فشل حالة الاختبار. مقدمة إلى التعامل مع الاختبارات في Laravel 1 اقتباس
السؤال
Osama Kha
اريد فقط عمل اختبار بسيط على دالة معينة ل جمع عددين مثلا للتأكد من القيمة الاصلية مع القيمة المتوقعة
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.