-- reto <[EMAIL PROTECTED]> wrote
(on Friday, 14 March 2008, 03:50 AM +0100):
> Hi everyone,
>
> I'm trying to test my ZF-Controllers with phpunit.
> The internet (http://www.alexatnet.com/node/12) gave me the following
> code to start a request to a given controller/action and then check
> the rendered output:
>
> $front = Zend_Controller_Front::getInstance();
> $request = new
> Zend_Controller_Request_Http('http://localhost/main/user/register');
> $response = new Zend_Controller_Response_Http();
> $front->returnResponse(true)->setRequest($request)->setResponse($response);
> $front->dispatch();
> $this->assertContains('</form>', $response->getBody());
>
> My problem is now, that if I run this code twice while testing (for
> testing two different controller/actions) all the View's variable's
> are still set.
> So if my first controller for the url "/main/user/register" sets
> $this->view->foo=1, then I can run another request for "/main/image",
> and the $this->view->foo variable is still set to "1".
>
> So I think this is, because the Fron-Controller is a
> singleton-instance, and there's also only one view instantiated per
> frontcontroller?
> So I thought maybe I should reset all those view-variables with
> Zend_View::clearVars(), but I have no idea, how I could reach the
> current view for example from a phpunit setUp()-method..
The same way you'd reach it from a plugin: grab the ViewRenderer, make
sure the view is initialized, and then clear the vars:
$viewRenderer =
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$viewRenderer->initView();
$viewRenderer->view->clearVars();
> Am I already doing something wrong with my frontcontroller-dispatch
> code? Or should I really clear those variables out before every
> request?
> Any help is appreciated!
> I'm using th ZF 1.5 RC3
--
Matthew Weier O'Phinney
PHP Developer | [EMAIL PROTECTED]
Zend - The PHP Company | http://www.zend.com/