Не зная точно, что делает zfrun.php
, я могу только догадываться, и, похоже, вам нужно угробить ControllerTestCase
. ControllerTestCase
предназначен для имитации HTTP-запроса на отправку через диспетчер Zend, но вам это не нужно.
Вместо этого вы можете попытаться имитировать вызов zfrun.php
из командной строки, установив $ argv, как это будет выглядеть, и выполнив zfrun.php
самостоятельно:
function testIndexAction() {
$argv = array(
'-a',
'module_name.controller_name.index',
);
require 'zfrun.php';
}
Проблема заключается в том, что это работает только для одного теста, при условии, что zfrun.php
определяет классы или функции и не может требоваться несколько раз. Поэтому вам нужно будет делать то, что zfrun.php
делает в новом базовом классе тестового набора, без использования самого zfrun.php
. По сути, рефакторинг своего кода в многократно используемый вспомогательный метод тестирования.
function executeControllerAction($module, $controller, $action) {
... whatever magic zfrun.php does ...
}