Russian Qt Forum
Ноябрь 26, 2024, 02:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Юнит тестирование с QTestLib  (Прочитано 3039 раз)
lzv
Гость
« : Апрель 18, 2013, 08:57 »

Здравствуйте.

Раньше не использовал юнит-тестирование, но решил, что это будет полезным. Начал изучать тему, но как понял, протестировать можно только простые методы, которые обрабатывают параметры и возвращают результат. И еще вроде есть некоторые возможности тестирования графического интерфейса (с этим пока не разбирался).

Но как протестировать методы, которые например, принимая параметры, делают запрос в БД (либо вызывают другие методы, которые обращаются в БД) и обработав все данные возвращают результат? Как эмулировать наличие нужных данных в БД без использования настоящей БД и соединения с ней?
Как протестировать методы, которые добавляет данные в БД, без изменения реальной БД?
Как протестировать метод paintEvent, который в зависимости от параметров рисует нужную картинку на виджете?

Особенно интересует вопрос про эмулирование данных в БД.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 18, 2013, 09:12 »

Вначале теста создаешь тестовую базу и ее уже юзаешь.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Nagdiel
Гость
« Ответ #2 : Апрель 18, 2013, 21:58 »

Я в этом вопросе не большой специалист, но если не ошибаюсь, то проверка функционирования программы с БД на некотором наборе данных это уже не unit-testing, а интеграционное тестирование. В unit-testing для проверки взаимодействия класса (модуля) с внешним окружением используются fake- и mock-объекты - своего рода заглушки, которые позволяют проверить был ли вызван определенный метод (функция) с заданными параметрами. Насчет paintEvent - тут как раз mock можно было бы использовать, так как главное проверить, что вызваны функции отрисовки и их параметры соответсвуют заданным условиям. Рисуют же непосредственно библиотечные функции, их проверять уже не надо.

Ну а если речь все же об интеграционных тестах, тогда да - тестовую базу надо использовать.
Записан
Nagdiel
Гость
« Ответ #3 : Апрель 18, 2013, 22:43 »

И еще насчет генерации данных - может быть эта статья будет полезна
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.