Не могли бы вы потрудиться поиздеваться над объектом StreamReader?

StackOverflow https://stackoverflow.com/questions/62159

  •  09-06-2019
  •  | 
  •  

Вопрос

Я использую программу чтения потоков для импорта некоторых данных, и на данный момент я жестко кодирую небольшой файл образца в тесте, чтобы выполнить эту работу.

Разумно ли использовать макетные объекты с этим и как?

Это было полезно?

Решение

Я не вижу никаких оснований для издевательства над StreamReader, если только вы не создаете производный класс StreamReader.Если вам нужно предоставить тестовый ввод через StreamReader, просто прочитайте некоторые предопределенные данные из любого подходящего источника.

Другие советы

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

Возможно, вы обнаружите, что хотите смоделировать это, если вам нужно принудительно выводить ошибки из reader, а не просто предоставлять данные вашему тестируемому классу.Если вам не нужна эта функциональность, возможно, вы так же далеко продвинулись вперед конструирование средство чтения потока из какого-либо другого потока, например Поток памяти - таким образом, вам не нужно обращаться к диску за вашими данными.

При тестировании кода, который зависит от streams, streamreaders и streamwriters, я обычно использую объект memorystream для тестирования.Здесь не нужен никакой издевательский фреймворк.

Вы можете использовать заводской метод для возврата TextReader, который может быть либо фиктивным объектом, либо фактическим StreamReader.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top