كيفية القيام بشكل صحيح إكومديف فبونيت ملف تحميل اختبار مع $_الملفات?
-
29-09-2020 - |
سؤال
أريد اختبار وظيفة تحميل الملف في الوحدة النمطية الخاصة بي ، لكنني تمسكت بالحد من ملف إيسلوبلوددفيل و موفيوبلوددفيل على كلي.
محاولة محاكاة إجراءات تحميل ملفات المستخدم عن طريق صياغة مصفوفة ملفات مخصصة:
class Company_Module_Test_Helper_CompanyHelperTests extends EcomDev_PHPUnit_Test_Case {
public function uploadProductImagesTest() {
...
$this->assertTrue(file_exists($testFile));
$this->assertTrue(is_readable($testFile));
$_FILES = array(
...
);
$this->mockSession('customer/session');
$this->customerSession($fixtureCustomerId);
...
ولكن عندما أقوم بتصحيح الأخطاء ، أرى أن ملف النقل يتم تحميله في ملف تحميل متنوع - > ملف نقل() وظيفة فقط إرجاع خطأ.
لقد وجدت حلا لاستخدام مساحة الاسم المخصصة وتجاوز ملف موفيوبلودد_فيل و إيسيوبلودد_فيل وظيفة ولكن عندما حاولت إضافة مساحة اسم مخصصة في فئة الاختبار لن يتم تشغيل الاختبار:
namespace CustomTest;
class Company_Module_Test_Helper_CompanyHelperTests extends \EcomDev_PHPUnit_Test_Case {
...
}
بحاجة الى بعض النصائح في هذه الحالة, ربما كان من الممكن بطريقة أو بأخرى ?شكرا
المحلول
لا تفعل عمليات الملف الفعلية في الاختبارات ، وهمية Varien_File_Uploader
بدلا من ذلك.لتكون قادرة على القيام بذلك ، وأود أن خلق getUploader()
الطريقة في المساعد.ثم وهمية هذا الأسلوب المساعد باستخدام ميزة استبدال إكومديف_فبونيت للسماح لها بإرجاع رافع سخر.