2010-01-25 3 views
7

Мы пытаемся использовать Fitnesse для нашего функционального теста. Должен ли я быть издевательскими зависимостями или должен ли он тестировать базу данных?Fitnesse- Должны ли тесты говорить с базой данных?

Каковы преимущества/недостатки любого подхода?

Вся проблема тестирования с БД связана с настройкой данных, которые являются огромной зависимостью. Если мы издеваемся над этим, это реальный функциональный тест?

Thanks

ответ

4

У нас есть полный набор функциональных тестов от конца до конца, которые работают в фитнесе в двух режимах: «InMemory» и «Database», , В зависимости от того, какая конфигурация для запуска тестов в диктует, какие репозитории используются в тестах. Это имеет ряд преимуществ:

1) Это заставляет разработчиков создавать большую функциональность в базе данных и хранит в коде.

2) Когда «In-Memory» тесты на пригодность проходят очень быстро. Предотвращение провалов очень быстро ... и, тем самым, ускоряет развитие и маневренность. Когда они запускаются в режиме db, они занимают некоторое время.

+0

Спасибо. Полностью имеет смысл. – Naveen

0

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

+0

Спасибо. Как насчет боли данных установки? Разве это не сложно для каждого теста. Мы хотели бы использовать эту часть CI. Как легко или сложно в Fitnesse настроить данные? – Naveen

3

Я вижу (по крайней мере) 2 типа тестов, которые могут быть сделаны с FitNesse:

  • Тесты (или примеры), предназначенные для определения логики домена или поведения. Этих я склоняю не для использования с доступом к базе данных, поскольку это обычно не важно для цели теста.

  • Испытания методом сквозной (или почти сквозной) проверки, используемые в качестве тестов на регрессию или дым. К ним, очевидно, относятся функции базы данных.

Выгода в том числе БД является то, что тест является более представителем реальной производственной системы, недостатком является то дополнительными затратами на создание и управления состоянием базы данных. Посмотрите на DbFit - набор светильников, предназначенных для настройки и проверки БД.

1

Я предпочел бы изолировать интеграционные тесты, связанные с БД в NUnit. Ваши тестовые тесты не должны терпеть неудачу из-за проблем с интеграцией. Я нашел более удобным переносить состояния объекта через простые синглтоны, чем DB.

0

Я работал над созданием другого набора тестов для связанных с DB материалов, что дает мне больше уверенности, когда я попадаю в другое тестирование функциональности. Такие вещи, как бизнес-правила, хранимые процедуры и некоторые базовые, но важные таблицы, могут быть проверены, чтобы убедиться, что они находятся там, где они предполагают, и дают правильные результаты. Если это так, как вы ожидали, то то, что вы видите на переднем конце, должно быть надежной средой для проведения функциональных тестов.