Легко ли создать экземпляр типа Vehicle (объект), а затем вызвать ваш метод для теста? Если да, то, скорее всего, вам не нужно издеваться.
Однако, если тип вашего транспортного средства имеет зависимости (например, объект доступа к базе данных), необходимые для выполнения действия, которое вы хотите протестировать, то вы хотели бы использовать фиктивный объект доступа к базе данных, который возвращает стандартные значения для теста, поскольку вы хотите, чтобы ваши юнит-тесты выполнялись быстро.
Vehicle [depends On>] OwnerRepository [satisfied By] SQLOwnerRepository
Итак, вы вводите интерфейс (скажем, OwnerRepository для получения сведений о владельце) для разделения взаимодействия между БД (определения контракта) между ними. Сделайте вашу реальную зависимость (здесь SQLOwnerRepository) реализующей этот интерфейс. Также создайте свой код таким образом, чтобы можно было вводить зависимости, например
public Vehicle (OwnerRepository ownerRepository)
{ _ownerRepository = ownerRepository; // cache in member variable }
Теперь в тестовом коде,
Vehicle [depends On >] OwnerRepository [satisifed By] MockOwnerRepository
У вас есть фреймворки, в которых данный интерфейс мог бы создать имитационную реализацию (см. Фреймворки Rhino / Moq). Таким образом, вам больше не нужно фактическое соединение с БД для проверки класса вашего автомобиля. Моды используются для отвлечения отнимающих много времени / неконтролируемых зависимостей, чтобы ваши тесты выполнялись быстро / предсказуемо.
Я бы порекомендовал прочитать «Внедрение зависимостей», чтобы лучше понять, когда и зачем использовать макеты.