Какой стиль / синтаксис лучше всего использовать с Rhino Mocks?

Существует множество подходов для написания ваших модульных тестов при использовании Rhino Mocks:

  • Стандартный синтаксис
  • Синтаксис записи / воспроизведения
  • Свободный синтаксис

Какой идеальный и самый удобный способ?

3 ответа

Для.NET 2.0 я рекомендую модель записи / воспроизведения. Нам это нравится, потому что оно четко отделяет ваши ожидания от ваших проверок.

using(mocks.Record())
{
    Expect.Call(foo.Bar());
}
using(mocks.Playback())
{
    MakeItAllHappen();
}

Если вы используете.NET 3.5 и C# 3, то я бы порекомендовал свободный синтаксис.

Устройте, действуйте, утверждайте. То есть я использую MoQ и предпочитаю Arrange, Assert, Act, Verify. Мне нравится все настраивать до того, как я начну действовать, а не делать тяжелую работу в конце.

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

Мне также очень нравится синтаксис Fluent, хотя это довольно громоздко. Синтаксис Record/Replay такой же громоздкий, как и синтаксис Fluent (если не больше, на первый взгляд), но менее интуитивно понятный (по крайней мере для меня). Я использовал только NMock2, поэтому синтаксис Record/Replay мне немного чужд, а синтаксис Fluent довольно знаком.

Однако, как следует из этого поста, если вы предпочитаете отделять ваши ожидания от ваших проверок / утверждений, вы должны выбрать синтаксис Fluent. В конечном счете, все зависит от стиля и личных предпочтений:-)

Другие вопросы по тегам