Модульное тестирование контроллеров 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". Затем мы подключим контроллер, чтобы использовать это представление во время процесса начальной загрузки теста.
Так как это не может быть оптимальным подходом, я все еще хотел бы услышать от других, у которых есть потенциальные решения.