Как издеваться над классами ввода / вывода? - PullRequest
2 голосов
/ 25 сентября 2010

Мне интересно, как я могу издеваться над классами ввода / вывода. Например, у меня есть класс, который выполняет операции FTP или класс, который записывает в файл. Как я могу использовать макет для проверки и юнит-тестирования таких классов?

Я разработчик C # / NHibernate / Castle ActiveRecord / Rhino Mocks.

Ответы [ 2 ]

1 голос
/ 25 сентября 2010

Используя Rhino Mocks, вы можете макетировать только интерфейсы, абстрактные классы (виртуальные методы в целом). Поэтому абстрагируйте свой код доступа к сети в интерфейсы, а затем смоделируйте их, чтобы выполнить модульное тестирование других классов в зависимости от них в отдельности.

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

0 голосов
/ 25 сентября 2010

Для rhinomocks вы должны определить интерфейс или абстрактный класс, чтобы rhinomocks мог создать для вас объект прокси / mock. Другие фальшивые фреймворки (например, typemock и Justmock , оба коммерческие) могут имитировать неабстрактные классы, статические классы, не виртуальные методы и т. Д.

...