Модульный тест потока байтов - PullRequest
3 голосов
/ 28 января 2009

Я использую веб-сервис Reporting Services для генерации отчета и позволяю пользователю загрузить его. Это происходит через PDF, Excel, XML и т. Д. И работает просто отлично. Я пытаюсь создать какое-то разделение между моим классом отчетов и реализацией, но я пытаюсь понять, как я могу это сделать в поместье, которое все еще можно тестировать.

Поскольку мой пользовательский объект / класс отчетов напрямую обращается к веб-службе, следует ли мне еще больше отделить это с помощью интерфейсов? Будем весьма благодарны за любые рекомендации по этому вопросу и за то, как он все еще будет тестироваться модулем, независимо от источника байтов.

Ответы [ 3 ]

4 голосов
/ 28 января 2009

Рассел, я думаю, что ваш ответ заключается в том, чтобы узнать о внедрении зависимости / инверсии контроля. Вы можете начать здесь ...

1 голос
/ 28 января 2009

Как уже упоминалось, внедрение зависимостей / инверсия управления - это путь. Код для интерфейса, а не конкретного класса. Затем, когда ваш модульный тест запускается, он может заменить реализацию веб-службы фиктивной реализацией, которая возвращает ложные фиксированные данные.

1 голос
/ 28 января 2009

Если вы новичок в Dependency Injection / Inversion of Control, эта ссылка - отличный скринкаст Карла Франклина и Джеймса Ковача.

Телепередача DNR # 126: контейнер IoC Джеймса Ковача, в котором вы можете сделать свой собственный ролл

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

...