У меня есть интересный сценарий в том, что мне нужна функция, которая должна быть определена для проведения тестов для другой функции. Функция, которую я хочу протестировать, выглядит примерно так:
if (function_exists('foo') && ! function_exists('baz')) {
/**
* Baz function
*
* @param integer $n
* @return integer
*/
function baz($n)
{
return foo() + $n;
}
}
Причина, по которой я проверяю существование foo
, заключается в том, что она может быть определена или не определена в проекте разработчика, а функция baz
основана на foo
. Из-за этого я хочу, чтобы baz
определялся, если он может вызвать foo
.
Единственная проблема заключается в том, что до сих пор было невозможно писать тесты. Я попытался создать загрузчик script в конфигурации PHPUnit, который определит функцию fake foo
, а затем потребует автозагрузчик Composer, но мой основной script по-прежнему считает, что foo
не определен. foo
не является пакетом Composer и в противном случае не может потребоваться моему проекту. Очевидно, Mockery тоже не сработает. Мой вопрос: если кто-то более опытный с PHPUnit столкнулся с этой проблемой и нашел решение.
Спасибо!