![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Для таких мелких функций у меня почти всегда в проекте есть отдельный модуль - это файлы: "freeFunctions.h" и "freeFunctions.cpp". Туда складываю функции, для которых пока не придумал класс. Тестирую их Google Test'ом. А GUI, сеть, COM-порт т.д. только контент выдают. Выдачу контента легче контролировать, не прибегая к тестам, чем парсинг (этого контента) и обработка данных (полученных в результате парсинга). Тестами можно описать всякие граничные условия, острые моменты, исключения (когда выдаются, а когда нет). А потом приступить к разработки функции, не боясь чего-то не учесть. На практике, правда, лично у меня далеко не всегда хватает времени на тесты. По ощущениям, затраченное время на тесты, потом окупается. Но через GUI - для меня это слишком
![]() Последний раз редактировалось 8Observer8; 11.09.2014 в 18:22. |
![]() |
![]() |
#12 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
FitCpp не пробовал? - это порт фитнеси на С++. Последние 2 книги, которые читал описывают юнит-тестирование именно с фитнеси... Вроде как все гладко там, а основная фича в том, что это вики-система, и тесты разворачиваются в вики и там же можно описать еще что-то, типа документации, наверное. Вот ссыль на описание порта для С++: http://accu.org/index.php/articles/305
Лично я не пробовал ни это, ни тесты гугла, мне кажется что для Qt гораздо удобнее использовать встроенные тесты - там и с GUI проблем нет и со всякими встроенными типами (которые иначе придется как-то кастовать в строки наверное). Да и вообще.... Почему ты используешь тесты гугла? |
![]() |
![]() |
#13 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]() |
![]() |
![]() |
#14 | ||||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
Цитата:
Ты наверное знаешь что Код:
Нашел в документации, цитирую: Цитата:
Ну а сейчас это не нужно, ведь есть там встроенная штука - QVERIFY_EXCEPTION_THROWN. В документации: http://qt-project.org/doc/qt-5/qtest...CEPTION_THROWN Цитата:
Короче все там есть. Но если и не было год назад - руками решалось все в 10-15 строк кода. |
||||
![]() |
![]() |
#15 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Ты думаешь в QTest есть тестирование сигналов? Да, у меня и нет такой необходимости.
По qFuzzyCompare ты не найдёшь нигде информацию, как её использовать. Как и по QVERIFY_EXCEPTION_THROWN По GTest гораздо больше информации, вопросов на форумах и т.д. По QTest - приктически ничего. Здесь видно, как легко использовть GTest: http://www.prog.org.ru/index.php?top...4714#msg194714 Последний раз редактировалось 8Observer8; 11.09.2014 в 20:53. |
![]() |
![]() |
#16 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Это всё в теории на самом деле на QTest невозможно писать нормально тесты. Точнее можно, но с костылями.
|
![]() |
![]() |
#17 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
http://qt-project.org/doc/qt-5/QSignalSpy.html Код:
Цитата:
Цитата:
|
|||
![]() |
![]() |
#18 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]()
Я просто помучился с QTest и когда стал использовать GTest, то увидел, как это здорово, понятно, универсально, удобно и т.д.
Вот на примере первой задачи "Медиана". Функцию для расчёта медианы убираем в отдельный файл: Код:
Код:
Подключаем Google Test и файлы с функцией: Median_Tests.pro Код:
main.cpp Код:
Во втором тесте функция должна выбросить исключение IncorrectArgument (но мы конечно не написали ещё и поэтому получаем фейл) Получаем такой результат: Цитата:
Последний раз редактировалось 8Observer8; 11.09.2014 в 21:39. |
|
![]() |
![]() |
#19 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
![]() Цитата:
|
|
![]() |
![]() |
#20 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
Ну... с Qt оно делается также если не более элегантно. Единственное, что qFuzzyCompare сравнивает с фиксированной точностью и она выше чем 0.001, ну если уж очень надо - можно впилить свою (как я и сделал тут).
median.h: Код:
Код:
Код:
Цитата:
Код:
Цитата:
![]() Последний раз редактировалось rrrFer; 11.09.2014 в 22:31. |
||
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь в решении задач. (Pascal) | Ignoree | Помощь студентам | 2 | 27.04.2014 20:27 |
Ошибки в решении задач с функциями | Anwen | Помощь студентам | 1 | 04.12.2010 16:23 |
Помощь в решении задач на Pascal. | Girl_night | Помощь студентам | 1 | 15.10.2009 16:39 |