Под «выходным паром» я подразумеваю любой объект, который получает последовательность байтов, или символов, или чего-либо еще.Итак, java.io.OutputStream, но также java.io.Writer, javax.xml.stream.XMLStreamWriter, метод writeCharacters и т. Д.
Я пишу фиктивные тесты для класса, основная функция которогосостоит в том, чтобы записать поток данных в один из них (XMLStreamWriter, как это происходит).
Проблема заключается в том, что поток данных записывается в виде серии обращений к методу записи, но важно то,не звонки, а данные.Например, для XMLStreamWriter out
эти:
out.writeCharacters("Hello, ");
out.writeCharacters("world!");
эквивалентны следующему:
out.writeCharacters("Hello, world!");
Это действительно не имеет значения (для моих целей), что происходит.Будет определенная последовательность вызовов, но мне все равно, что это, поэтому я не хочу писать ожидания для этой конкретной последовательности.Я просто хочу ожидать, что определенный поток данных будет записан любым способом.
Один из вариантов - переключиться на тестирование на основе состояния.Я мог бы накапливать данные в буфере и делать утверждения об этом.Но поскольку я пишу XML, это означало бы сделать несколько довольно сложных и безобразных утверждений.Мокость кажется гораздо лучшим способом решения большой проблемы написания XML.
Итак, как мне сделать это с макетом?
Я использую Moxie дляиздеваться, но мне интересно услышать о подходах с любой библиотекой издевательств.