2

在 Zend 中,模型被添加到视图中:

//In a controller
public function indexAction() {
  //Do some work and get a model
  $this->view->model = $model;    
}

我们可以轻松地检查视图中是否存在“模型”(我为此使用了 simpletest):

//In a unit test
  public function testModelIsSetInView() {
    //Call the controllers index action
    $this->assertTrue(isset($this->controller->view->model));
  }

但是,测试“值”也不起作用:

//In a unit test
  public function testModelValue() {
    //Call the controllers index action

    //Both of these return null, though I'd like to access them!
    $this->assertNull($this->controller->view->model);
    $this->assertNull($this->controller->view->__get('model'));
  }

如何获得(或至少测试)控制器已设置有效模型?

4

2 回答 2

1

http://www.contentwithstyle.co.uk/content/unit-testing-controllers-with-zend-framework

于 2009-04-16T14:56:42.430 回答
0

因此,解决方案(至少是目前计划的)是制作一个实现 Zend_View_Interface 的可测试视图。这将包括一个“get”方法,该方法返回传递给“__set”的对象。然后我们将连接控制器以在测试引导过程中使用此视图。

由于这可能不是最佳方法,我仍然很想听听其他有潜在解决方案的人的意见。

于 2009-04-16T15:31:06.347 回答