Как я вижу, для работы вы используете внешнюю программу ffmpeg
. Итак, мои предложения таковы:
1) Проверьте команду: вы извлекаете эту функцию в две функции. Один для генерации команды (в данном случае $command3
). Создайте модульный тест, чтобы проверить правильность команды. Другая функция выполняет команду.
2) Проверьте окончательный результат. Вы вручную создаете файл результатов. Сделайте все возможное (вручную), чтобы убедиться, что файл результатов - это то, что вам нужно. Напишите модульный тест для создания команды, выполните ее, а затем сравните новый выходной файл и файл, который вы создали ранее. Сравнение может быть сделано с помощью таких инструментов, как bsdiff или с помощью php для чтения побайтно (на ум приходит fread
), чтобы сравнить их .
Вы можете создать несколько файлов для этого теста (например, для каждой полосы пропускания, частоты дискретизации или кодека).
ПРИМЕЧАНИЕ I , что второй тест может не сработать, если процесс преобразования всегда выдает точно такой же двоичный файл.
ПРИМЕЧАНИЕ II Если преобразование не всегда дает один и тот же двоичный файл или невозможно иметь один тестовый файл для представления всех других файлов. Вы должны сделать более прозрачный тест, зная формат выходного файла и проанализировав его. Например, прочитайте исходную и выходную аудиофайлы, частоты дискретизации и сравните их.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ Я забыл что-то сказать. Если вы доверяете ffmpeg. Вы можете просто полностью пропустить тест 2 (двоичное сравнение) и проверить только команду.