Модульное тестирование контроллеров Zend - как проверить, что установлено в представлении - PullRequest
2 голосов
/ 16 апреля 2009

В Zend модели добавляются в представление:

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

Мы можем легко проверить, что "модель" существует в представлении (я использую для этого простейшее):

//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'));
  }

Как получить (или хотя бы проверить), что контроллер установил допустимую модель?

Ответы [ 2 ]

1 голос
/ 16 апреля 2009
0 голосов
/ 16 апреля 2009

Итак, решение (по крайней мере, запланированное на данный момент) состоит в создании тестируемого представления, которое реализует Zend_View_Interface. Это будет включать в себя метод «get», который возвращает объекты, переданные в «__set». Затем мы подключим контроллер, чтобы использовать это представление во время тестового процесса начальной загрузки.

Поскольку этот подход может быть неоптимальным, я все равно хотел бы услышать мнение других людей, у которых есть потенциальные решения.

...