Тестирование IO.Stream взаимодействия - PullRequest
1 голос
/ 04 февраля 2009

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

public Sub Initialize(ByVal uploadStream As Stream)
    ''// Logic using uploadStream
End Sub

В целях тестирования я хотел бы добавить в этот метод максимизированный поток, но при работе с потоками обнаружил непреодолимое отсутствие абстракции.

Интуиция подсказывает мне, что необходимо создать упаковщик Stream, который позволил бы мне настроить интерфейс упаковщика для проверки взаимодействия моей логики с потоковым преобразователем.

Как лучше поступить?

Ответы [ 2 ]

3 голосов
/ 04 февраля 2009

Если вы просто хотите передать способ «поддельной» загрузки, вы можете создать MemoryStream в своем тестовом жгуте и передать его.

1 голос
/ 04 февраля 2009

Я тоже склонен использовать MemoryStream. Для некоторых тестов вы можете перегружать метод Read, чтобы он возвращал меньше запрошенного количества байтов. (Я думаю, MemoryStream всегда будет возвращать запрошенное количество байтов, если только он не достиг конца потока, но сетевой поток может вернуть меньше байтов, чем запрошено, даже до конца потока.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...