| Цитата(kahlua @ 15.6.2010, 12:25) | Коллеги. возник непонятный момент, а "нагуглить" .... ничего толкового не получилось. Суть такая. Есть модуль и для него нужно создать набор тестов. При создание тестов натолкнулся на новую для себя ситуацию. Ситуация такая - в одном из тестов я создаю перл-объект, ему доступен ряд методов. При вызове необходимого для меня метода у объекта, открывается STDIN (через вызов функции read ) на который требуется предать xml-ку. Когда запускаю тест в консоли, понятное дело, что тест останавливается когда вызывается функция read... Так вот, каким образом (может есть какая готовая либа) можно "зашарить" открытый дейскритор ввода и в самом тест-кейсе передать в него необходимые данные? Подозреваю, что должне быть готовый модуль с небходимым функционалом :( Thx! |
возможно я не правильно понял но "зашарить" STDIN можно следующим образом....
| Код | use strict; open(INCOPY,"<&STDIN"); open(STDIN,"<file.txt"); # Прочитает STDIN из файла print &read_(); close(STDIN); open(STDIN,"<&INCOPY"); # STDIN обычный print &read_(); sub read_ { my $buffer; my $bytes = read(STDIN,$buffer,10); return "$buffer"; }
|
|