Существует несколько подходов к написанию модульных тестов при использовании Rhino Mocks:
Каков идеальный способ без трения?





Интересный вопрос! Я предпочитаю синтаксис, основанный на отражении (что, я думаю, вы имеете в виду под стандартным синтаксисом). Я бы сказал, что это самый простой вариант, поскольку он не добавляет лишнего кода: вы ссылаетесь на заглушки прямо на своих интерфейсах, как если бы они были правильно реализованы.
Мне также очень нравится синтаксис Fluent, хотя он довольно громоздкий. Синтаксис записи / воспроизведения столь же громоздок, как и синтаксис Fluent (если не больше, по-видимому), но менее интуитивно понятен (по крайней мере, для меня). Я использовал только NMock2, поэтому синтаксис записи / воспроизведения мне немного чужд, в то время как синтаксис Fluent довольно знаком.
Однако, как предлагает эта почта, если вы предпочитаете отделить свои ожидания от проверок / утверждений, вам следует выбрать синтаксис Fluent. В конце концов, все дело в стиле и личных предпочтениях :-)
Для .NET 2.0 я рекомендую модель записи / воспроизведения. Нам это нравится, потому что он четко отделяет ваши ожидания от ваших проверок.
using(mocks.Record())
{
Expect.Call(foo.Bar());
}
using(mocks.Playback())
{
MakeItAllHappen();
}
Если вы используете .NET 3.5 и C# 3, я бы порекомендовал свободный синтаксис.