Фитнес - должны ли тесты общаться с базой данных? - PullRequest
7 голосов
/ 25 января 2010

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

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

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

Спасибо

Ответы [ 5 ]

4 голосов
/ 29 января 2010

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

1) Он не позволяет разработчикам встраивать множество функций в базу данных и сохраняет в коде.

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

3 голосов
/ 26 января 2010

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

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

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

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

1 голос
/ 26 января 2010

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

0 голосов
/ 26 января 2010

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

0 голосов
/ 25 января 2010

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

...