Проникнуть в укол и издеваться - PullRequest
3 голосов
/ 12 ноября 2010

Я думал о том, чтобы узнать о заглушках и макетах, и я знаю несколько доступных библиотек для .Net: RhinoMocks, Moq, TypeMock ... и хотя у меня до сих пор нет четкого различия между заглушками и издевается, я знаю, что это там, и я всегда мог гуглить об этом.

Я бы хотел знать, не вдаваясь в TDD или что-то подобное:

  • Стоит ли обучение? Я не уверен, что узнаю все мелкие детали об ожиданиях или о том, что окупится в этой ситуации.

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

  • Какую библиотеку вы бы порекомендовали? Мок кажется легче.

  • Какие лучшие ресурсы (учебные пособия, книги, видео ...) для чайников и более или менее в курсе? Мне бы не хотелось узнавать о библиотеке, и когда я скачаю последний выпуск, пойму, что большая часть показанного API больше не действительна.

Спасибо за все.

Ответы [ 4 ]

5 голосов
/ 12 ноября 2010
  • Кривая обучения стоит? - Да, это не так сложно. Как только вы узнаете, как использовать фальшивый фреймворк, вы сэкономите массу времени на модульном тестировании.

  • Лучше, чем ручные издевательства? - Не обязательно, в некоторых ситуациях ручное издевательство может быть лучше. Но IMO, фальшивые фреймворки, как правило, являются самым быстрым способом добиться цели с наименьшим количеством кода. Попробуйте оба подхода, и вы узнаете, какой из них лучше в данной ситуации.

  • Какая библиотека? - Moq и Rhino Mocks являются наиболее популярными для .Net согласно этому опросу , и оба имеют множество функций и просты в использовании. В Rhino есть два способа насмешки (режим «запись и воспроизведение» и «AAA») - я бы использовал только режим AAA. Я думаю Moq работает только как режим Rhino 'AAA', так что это может быть немного менее запутанным.

  • Не уверен насчет конкретных ресурсов, просто выберите инструмент и Google его, вы найдете много.

С точки зрения разницы между макетами и заглушками, макет может записывать, что с ним произошло (например, какие методы были вызваны с ним), тогда как заглушка не может. Вы узнаете больше, когда начнете их использовать.

2 голосов
/ 12 ноября 2010

Я уже пару месяцев пользуюсь FakeItEasy , и это потрясающе!
Не могу рекомендовать это достаточно высоко.

0 голосов
/ 12 ноября 2010

Stub - фальшивый объект, который имитирует поведение "реального" объекта и отвечает за поддержание возможности выполнения теста.

Mock - заглушка, которая используется для подтверждения прохождения теста.


О насмешливых фреймворках - этот вопрос задавался ранее .

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

В последнее время Moq, похоже, является самой популярной платформой для насмешек в .Net space. Я тоже этим пользуюсь.

0 голосов
/ 12 ноября 2010

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

На домашней странице также есть хорошая документация.

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

...