считается ли предоставление конструктора по умолчанию лучшей практикой для тестирования? - PullRequest
0 голосов
/ 03 декабря 2010

Я работаю с Moles Framework для насмешек.Я сталкиваюсь с некоторыми препятствиями с объектами, которые не имеют конструкторов без аргументов.Когда я создаю рассматриваемый объект, я должен предоставить идентификатор, который запускает вызов базы данных для установки свойств объектов.Что означает гораздо больше перехвата через родинок. Если бы у объекта был простой конструктор, мое тестирование было бы намного более плавным.

Я помню, что где-то слышал, что предоставление конструктора по умолчанию важно для тестирования.Когда я зашел в Google, чтобы подтвердить свои воспоминания, я не смог найти ответ.

Предоставление конструктора без аргументов: полезно или важно для тестирования?Ненужные?

1 Ответ

1 голос
/ 03 декабря 2010

Я считаю, что в любом случае вы не должны делать такого рода вещи в своем конструкторе объектов, так как он слишком тесно связывает ваши тесты с вашей базой данных, чтобы быть полезным. Инфраструктура внедрения зависимостей, такая как Ninject , очень помогла бы здесь. У вас нет конструктора по умолчанию, но вы делаете небольшую настройку и позволяете Ninject склеивать все, что нужно при создании ваших тестовых объектов.

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

Я знаю, что это вопрос, не зависящий от языка, поэтому Ninject может быть неуместен для вас, но это мой общий взгляд на модульное тестирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...