Какая модель доступа к базе данных лучше всего подходит для тестирования? - PullRequest
1 голос
/ 19 сентября 2008

Я читал о некоторых из них, включая активные записи, хранилище, объекты передачи данных. Что лучше?

Ответы [ 5 ]

3 голосов
/ 19 сентября 2008

Хотя я согласен, что «лучшие» вопросы не самая лучшая форма (поскольку они настолько произвольны), они также не являются абсолютно неуместными.

В мире, построенном здесь, у С.О. где разработчики голосуют за то, что «лучше», почему бы не задать лучшие вопросы? «Лучшие вопросы», быстрое обсуждение и разные мнения.

В конце концов, когда кто-то «ищет» шаблон доступа к данным, он должен зайти на эту страницу и увидеть множество ответов, верно?

3 голосов
/ 19 сентября 2008

«Лучшие» вопросы не являются действительными. Мир наполнен комбинациями и вариациями. Вам следует начать с вопроса, на который вы должны ответить: какую проблему вы пытаетесь решить. После того, как вы ответите, вы посмотрите на инструменты, которые лучше всего работают с проблемой.

1 голос
/ 23 сентября 2008

Репозиторий, вероятно, лучший шаблон для тестируемости, поскольку он позволяет вам заменить репозиторий на макет, когда вам нужно протестировать. ActiveRecord связывает ваши модели с базой данных (иногда удобно, но, как правило, сложнее тестировать).

1 голос
/ 22 сентября 2008

Это хороший вопрос, который должен вызывать некоторые мысли.
Доступ к базе данных часто не подвергается строгому тестированию, в частности, не автоматическому тестированию, и я, конечно, хотел бы увеличить объем тестирования в моей базе данных.

Я использую тестовый фреймворк MbUnit, работающий из Visual Studio, чтобы провести некоторое тестирование.
Наше приложение использует хранимые процедуры, где это возможно, и написанные мною тесты настраивают базу данных для тестирования, вызывают хранимые процедуры и проверяют результаты.
Для набора связанных хранимых процедур у нас есть файл C # с тестами для этих хранимых процедур. (Тем не менее, наш охват, вероятно, составляет около 1% до сих пор!).

Активная запись является привлекательным вариантом из-за встроенного в Ruby акцента на автоматическом тестировании. Если бы я начинал сначала, это было бы точкой для использования активной записи.

1 голос
/ 20 сентября 2008

Это действительно зависит от вашей задачи. По крайней мере, вы должны знать и понимать все шаблоны доступа к базе данных, чтобы выбрать наиболее подходящий для текущей проблемы.

...