Модульное тестирование контроллеров Zend - как проверить, что установлено в представлении

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

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

2 ответа

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

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

Другие вопросы по тегам