2013-07-02 3 views
2

Есть ли способ автоматически протестировать с помощью стандартных тестовых и т. Д. Модулей, будет ли программа Perl считывать входные данные, например. STDIN правильно? Например. тестирование программы, которая считывает два целых числа из STDIN и печатает их сумму.Perl: Тестирование считывателя ввода?

+0

'использовать Data :: Dumper; распечатать Dumper '? – TLP

+0

Сначала перенаправьте STDIN в файл или даже DATA-сегмент в тестовом скрипте. Во-вторых, убедитесь, что ваше чтение произвело ожидаемые значения. – DavidO

+0

Спасибо, это именно то, что я хотел сделать! Просто увидел это, но мне, в конце концов, удалось разобраться в этом самостоятельно: попробуйте открыть файл с тестовыми входами как STDIN; Таким образом, входы автоматически передаются в тестируемую программу, как если бы они поступали из командной строки. – draeklae

ответ

4

Это не на 100% понятное, что вы имеете в виду, я буду думать, что вы хотите написать тестовый скрипт, который проверяет вашу основную программу, которая, как часть теста, должна иметь тестовые входные данные, передаваемые через STDIN.

Вы можете легко сделать это, если ваша программа выводит то, что читает. Вам не нужен специальный тестовый модуль - просто:

  1. Позвоните в программе тестирования с помощью вы как раз системного вызова

    • перенаправлять как STDIN и STDOUT испытуемой программы тестового сценария, используя

      • IPC::Open2 модуль, чтобы открыть обе стороны с помощью трубы до дескрипторов файлов,

      • ... ИЛИ, построить свою команду, чтобы перенаправить в/из файлов и чтения/записи файлов в тестовом скрипте

  2. Проверка STDOUT от тестируемой программы, собранной на последнем этапе к убедитесь, что правильные значения напечатаны.

Смежные вопросы