Предложения по модульному тестированию внешнего инструмента cli (phpunit) - PullRequest
1 голос
/ 11 октября 2019

В настоящее время я работаю над проектом 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?

Кто-нибудь может предложить разумную стратегию для этого?

...