2013-07-10 2 views
-8

Что означает термин mocking означает в контексте C#/WPF?В чем смысл термина «Mocking» в C#?

+4

В самом деле? Google болит? http://bit.ly/13LJxUe – wudzik

+1

Почему бы просто не спросить их? – Cyclonecode

+0

Я знаю, что это за текст. Я попросил пример использования mock для тестирования моделирования в C#. Простите, если я не очень хорошо выражал. – user436862

ответ

4

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

См http://en.wikipedia.org/wiki/Mock_object

В книге "The Art of Unit Testing" Роя Osherove имеет хорошие объяснения, и я рекомендую, если вы знакомитесь с модульным тестированием в C#

макета отличается от пня в том, что она проверяет взаимодействия с проверенным кодом. Штук просто возвращает заранее определенные значения, чтобы помочь модулю протестировать ваш код.

1

См. Я дам вам несколько простых примеров, которые помогут вам понять.

  1. Пусть существует метод в классе говорят ParseEBCDICFileToASCII(strig fileName) и этот файл также проверяет, если файл существует или нет File.Exist(). Теперь вы пишете блок-тест для логики синтаксического анализа, и вы предоставляете некоторый путь к файлу в методе ParseEBCDICFileToASCII, тогда этот метод всегда будет терпеть неудачу или вернуться назад, потому что какой-либо файл, который вы дали, которого нет в действительности. В этом случае вы будете издеваться над File.Exist() таким образом, чтобы всякий раз, когда это будет вызывать, вы вернете фальшивое/издеваемое значение. Поэтому в модульном тесте ваша логика для File.Exist всегда будет возвращать издеваемое значение.

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

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

Смежные вопросы