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

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

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

Каков идеальный способ без трения?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
465
2

Ответы 2

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

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

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

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

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

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

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