от
Кто-нибудь есть некоторые хорошие подсказки для написания тестового кода для базы данных backend разработки, где есть сильная зависимость от государства? В частности, я хочу писать тесты для кода, извлечения записи из базы данных, но ответы будут зависеть от данных в базе данных (которая может меняться с течением времени). Люди обычно делают отдельную систему развития с "замороженных" базы данных, поэтому функция всегда должна возвращать тот же результат? Я вполне уверен, что это не новая проблема, и мне было бы очень интересно узнать из опыта других людей. Там хорошие статьи есть, что обсудить этот вопрос веб-разработки в целом? Я обычно пишу PHP-код, но я бы ожидать, что все эти проблемы носят в основном языка и платформы агностиком.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

11 Ответы

0 голосов
от
Кто-нибудь есть некоторые хорошие подсказки для написания тестового кода для базы данных backend разработки, где есть сильная зависимость от государства? В частности, я хочу писать тесты для кода, извлечения записи из базы данных, но ответы будут зависеть от данных в базе данных (которая может меняться с течением времени). Люди обычно делают отдельную систему развития с "замороженных" базы данных, поэтому функция всегда должна возвращать тот же результат? Я вполне уверен, что это не новая проблема, и мне было бы очень интересно узнать из опыта других людей. Там хорошие статьи есть, что обсудить этот вопрос веб-разработки в целом? Я обычно пишу PHP-код, но я бы ожидать, что все эти проблемы носят в основном языка и платформы агностиком.
0 голосов
от
Вы должны смотреть на Д. Банкрофт, или попробовать найти PHP-эквивалента (там должен быть один). Вы можете использовать его, чтобы подготовить базу данных с определенным набором данных, который представляет ваши тестовые данные, и при этом каждый тест больше не будет зависеть от базы данных и ряда существующих государственных. Таким образом, каждый тест является автономным и не сломается во время дальнейшего использования базы данных. Обновление: быстрый поиск Google показал расширение блока дБ для PHPUnit.
0 голосов
от
Если вы в основном касается тестирования уровня данных, вы могли бы хотеть проверить эту книгу: в xUnit Шаблоны тест: рефакторинг кода тестов. Я всегда был уверен в этом сам, но эта книга делает большую работу, чтобы помочь перечислить проблем, таких как производительность, воспроизводимость и т. д.
0 голосов
от
Я думаю, это зависит от того, что базу данных вы используете, но Красные Ворота (www.red-gate.com) сделать инструмент под названием генератор данных SQL. Это может быть настроено, чтобы заполнить базу данных с здравыми тестовыми данными. Вы можете также сказать ему, чтобы всегда использовать тот же семян в генераторе случайных чисел, так что ваши "случайные" данные каждый раз. Затем вы можете написать модульные тесты, чтобы воспользоваться этой надежной и воспроизводимой информации. Как для тестирования веб-части вещи, я в настоящее время глядя на селен (selenium.openqa.org). Это, кажется, кросс-браузер, способный тестов, которые помогут вам проверить функциональность. Однако, как и все эти тестовые инструменты веб-сайта, нет никакого реального способа, чтобы проверить, насколько хорошо эти вещи выглядят во всех браузерах без литья человеческий глаз за ними!
0 голосов
от
Мы используем базы данных в памяти (HSQL в данном случае является : http://hsqldb.org/). Гибернация (http://www.hibernate.org/) делает его легким для нас, для наших модульных тестов на тестирование БД, с дополнительным бонусом, что они бегут так быстро, как молния..
0 голосов
от
У меня точно такая же проблема с моей работой, и я считаю, что лучшая идея-это PHP-скрипт, чтобы повторно создать базу данных, а затем отдельный скрипт, где я сумасшедшая данные на него, чтобы увидеть, если она разбивает его. Я никогда не использовал какие-либо тестирования или т. п. Не могу сказать, работает ли он или нет к сожалению.
0 голосов
от
Если вы можете настроить базу данных с известным количеством до запуска тестов и снести в конце, тогда вы будете знать, какие данные вы работаете. Затем вы можете использовать что-то вроде селена легко проверить с вашего пользовательского интерфейса (при условии, на веб-основе, но есть много инструментов, тестирование пользовательского интерфейса для других ИП-кухни) и обнаружить наличие определенных записей отстранился от базы данных. Это определенно стоит настройка либо тестовая версия базы данных или сделать свои тестовые скрипты заполнения базы данных с известными данными в рамках тестов.
0 голосов
от
Вы могли бы попробовать http://selenium.openqa.org/ это больше для GUI тестирования, а не тестирование приложений уровня данных, но делает запись ваших действий, которые затем могут быть воспроизведены для автоматизации тестирования на различных платформах.
0 голосов
от
Моя стратегия здесь (я использую JUnit, но я уверен, что есть способ сделать эквивалент в PHP): У меня есть метод, который выполняется перед все модульные тесты, для конкретного класса Дао. Он ставит базе Дэв в известное состояние (добавляет все тестовые данные и т. д.). Как я запускаю тесты, я отслеживать любые данные, добавленные в известное состояние. Этих данных будет очищен в конце каждого теста. После всех испытаний на классе, другой метод удаляет все тестовые данные в базе данных разработчиков, оставив его в то состояние, которое было до начала тестов. Это немного работы, чтобы сделать все это, но я обычно пишу методы в классе DBTestCommon, где все мои тестовые классы DAO может добраться до них.
0 голосов
от
Я бы предложил использовать три базы данных. Одна база данных производства, разработка баз данных (наполнен некоторый значимые данные для каждого разработчика) и одна база данных тестирования (с пустыми столами и, может быть, несколько строк, которые всегда необходимы). Проверить код базы данных: Вставить несколько строк (с помощью SQL), чтобы инициализировать состояние Запустить функцию, которую вы хотите проверить Сравнить с фактическими результатами. Здесь вы можете использовать ваш обычный модульного тестирования Убирать строки, которые были изменены (так что следующий запуск не вижу предыдущего запуска) Очистка может быть сделано стандартным способом (конечно, только в базе данных тестирования) с
DELETE * FROM table
.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...