В настоящее время я работаю над проектом PHP, где мне нужно обернуть внешний инструмент CLI, который что-то делает (не очень важно, что это такое). Я хотел бы провести все это модульное тестирование.
Например, если у меня есть код, который делает это:
function foo($cmdpath, $param1, $param2) {
$output = [];
$result = 0;
exec(
sprintf(
'%s %s %s',
escapeshellcmd($cmdpath),
escapeshellarg($param1),
escapeshellarg($param2)
),
$output,
$result
);
if ($result == 0) {
echo 'We are ok!'
}
}
Этот код предполагает, что команда, указанная в $cmdpath
, существует и будетвозвращать числовой результат в зависимости от результата выполнения.
Стоит ли просто обернуть exec во что-то другое и заставить его вести себя по-разному при выполнении под PHPUNIT?
Кто-нибудь может предложить разумную стратегию для этого?