Osama Kha نشر 28 يوليو 2023 أرسل تقرير نشر 28 يوليو 2023 (معدل) <?php include('database.php'); if (isset($_POST['upload'])) { $NAME=$_POST['name']; $Des=$_POST['description']; $PRICE=$_POST['price']; $IMAGE=$_FILES['image']; $image_location = $_FILES['image']['tmp_name']; $image_name = $_FILES['image']['name']; $image_up = "images/".$image_name; $insert = "INSERT INTO products (Name, description, price, image) VALUES ('$NAME','$Des','$PRICE','$image_up')"; mysqli_query($sql,$insert); if(move_uploaded_file($image_location,'images/'.$image_name)) { echo "<script>alert('Product is uploded')</script>"; } else { echo "<script>alert('Product is not uploded')</script>"; } header('location: shop.php'); } ?> تم التعديل في 28 يوليو 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 28 يوليو 2023 أرسل تقرير نشر 28 يوليو 2023 من الأفضل استخدام إطار الإختبار PHPUnit المتاح للغة PHP، وستجد شرح هنا في الموقع الرسمي بناءًا على إصدار PHP الذي تستخدمه: https://phpunit.de/getting-started-with-phpunit.html مثلاً لإصدار PHP 8.1 واعلى سنقوم بتثبيت الإطار من خلال الأمر التالي: composer require --dev phpunit/phpunit ^10 ثم قم بإنشاء مجلد للاختبارات في مجلد مشروعك، وتسميته tests مثلاً، ثم داخل مجلد الاختبارات، أنشئ ملفًا جديدًا للاختبار، ويجب أن يكون اسم الملف ينتهي بـ Test.php، وليكن اسم الملف مثلاً ProductUploaderTest.php. ثم قم بتحديد الاعتمادات اللازمة في ملف الاختبار، بإضافة استيراد PHPUnit\Framework\TestCase واستيراد الكلاس الذي ترغب في اختباره، وفي حالتك، نحن نريد اختبار ProductUploader لذا يجب أن يكون الملف على النحو التالي: <?php // tests/ProductUploaderTest.php use PHPUnit\Framework\TestCase; // استيراد الكلاس الذي نرغب في اختباره include('ProductUploader.php'); class ProductUploaderTest extends TestCase { // هنا يمكنك إنشاء الاختبارات الخاصة بك } وعليك بإضافة دوال الاختبارات التي ترغب في إنشائها داخل الكلاس ProductUploaderTest، ويجب أن يبدأ اسم كل دالة اختبار بكلمة test، وليكن مثلاً إنشاء اختبار بسيط لدالة uploadProduct: <?php // tests/ProductUploaderTest.php use PHPUnit\Framework\TestCase; // استيراد الكلاس الذي نرغب في اختباره include('ProductUploader.php'); class ProductUploaderTest extends TestCase { // اختبار دالة uploadProduct public function testUploadProduct() { // الاستعداد للاختبار $dbMock = $this->createMock(mysqli::class); $dbMock->method('query')->willReturn(true); $uploader = new ProductUploader($dbMock); // القيام بالاختبار $result = $uploader->uploadProduct('Product Name', 'Product Description', 50, [ 'tmp_name' => '/path/to/temp/file', 'name' => 'product.jpg' ]); // التحقق من النتائج المتوقعة $this->assertTrue($result); } } وفي النهاية تشغيل الاختبارات باستخدام PHPUnit من سطر الأوامر، وعليك بالتأكد من وجود في مسار مجلد المشروع الرئيسي: ./vendor/bin/phpunit tests ولاحظ أن مجلد الإختبارات باسم tests. وستجد هنا توضيح مفصل: وأيضًا قد يفيدك على الإطلاع على Codeception بدلاً من PHPUnit: اقتباس
السؤال
Osama Kha
تعديل عنوان السؤال
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.