باستخدام أساليب إعادة التوجيه تعيين في زند معيد التوجيه العمل المساعد

StackOverflow https://stackoverflow.com/questions/3321036

  •  28-09-2020
  •  | 
  •  

سؤال

أنا وحدة اختبار بعض ملحقات زند_كونترولر_أكتيون في سيمبليتيست.أريد أن أكون قادرا على تعيين عنوان ورل إعادة توجيه باستخدام أساليب مجموعة من مساعد العمل معيد التوجيه ، ومن ثم استخدام طريقة ريديركتانديكسيت ريديركتور() لإعادة توجيه في الواقع في وقت لاحق في هذه العملية.لا يبدو أن هذه العملية تعمل كما كنت أتوقع من قراءة الوثائق والنظر في التعليمات البرمجية في وحدة تحكم العمل ، معيد التوجيه وفئات الاستجابة.

وهنا طريقة ونيتيستكاس كتبت:

  public function testSetGoToUrl() {

    $request    = new Zend_Controller_Request_Http();
    $response   = new Zend_Controller_Response_Http();
    $controller = new App_Zend_Controller_Action($request, $response, array());

    $controller->getHelper('redirector')->setGoToUrl('/');

  }

فئة التطبيق زندكونترولر_أكتيون هو مجرد امتداد ملموس من الطبقة المجردة زندكونترولر_أكتيون.كل ما أفعله هنا هو إنشاء مثيل لوحدة التحكم وتعيين عنوان ورل لإعادة التوجيه.يرسل المراسل البسيط الرؤوس أولا ، كما هو متوقع.لكن طريقة الاختبار هذه تولد استثناء "الرؤوس المرسلة" ولا أفهم السبب.لست على علم بأي طرق تشغيل() أو إرسال() يتم استدعاؤها في هذه الحالة.

ما الذي يرسل المجموعة الثانية من الرؤوس?

هل كانت مفيدة؟

المحلول

أثناء الاختبار يجب عليك استخدام Zend_Controller_Response_HttpTestCase و Zend_Controller_Request_HttpTestCase.
Zend_Controller_Response_HttpTestCase::sendHeaders() إرجاع مجموعة من جميع الرؤوس التي سيتم إرسالها بدلا من تنفيذ حقيقي header() البيانات.

وتستخدم هذه أيضا في Zend_Test_PHPUnit_ControllerTestCase.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top