Модульное тестирование c++25.02.2017, 13:46. Показов 4697. Ответов 18
Метки нет (Все метки)
Здравствуйте.
Подскажите, пожалуйста, документацию или пример по написанию таких тестов. Сам нагуглил только сторонние библиотеки для этого : Раз Два Тут что-то совсем непонятное происходит Как пример, нужно протестить вычисление площади и периметра прямоугольника:
Буду очень признателен за помощь.
0
|
||||||
| 25.02.2017, 13:46 | |
|
Ответы с готовыми решениями:
18
Модульное тестирование Модульное программирование в с++ Модульное программирование |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 25.02.2017, 14:19 | ||
|
завелосипедить собственный фреймворк для тестирования. или покрывать тестами собственные юниты. первое вы не осилите. второе - лучше чем gmock ничего пока ещё не придумали. в этом случае ищите доки по нему, примеры использования. будет что не понятно - спрашивайте.
1
|
||
| 25.02.2017, 19:54 [ТС] | |||||||||||||||||||||||||||||||||||||
|
Базовый класс
подрубаем
Так вот вопросы: 1) делать определение mock-класса как базового так и производного? Или только виртуальных методов базового класса?
Или mock-класс нужно создавать только для класса, который мы тестируем, то есть для Rectangle? Добавлено через 45 минут Ещё получаю ошибку в этом коде:
Так тоже не работает:
0
|
|||||||||||||||||||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 25.02.2017, 22:42 | ||||
|
необходимо указать пути, где искать lib файлы, и их имена.
0
|
||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 26.02.2017, 11:17 | |
|
hoggy, подскажите хак с доступом к приват полям через шаблоны используется в тестировании?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 26.02.2017, 11:52 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 26.02.2017, 11:57 | |
|
ct0r, тестирование private/protected методовов? Или чёрный ящик не тестируется?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 26.02.2017, 12:55 | ||
|
Если для этого внезапно должны отдельно тестироваться приватные вещи, то это признак проблем в дизайне.
1
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 26.02.2017, 13:43 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.02.2017, 14:05 | |
|
Я с планшета, выделять цитаты не умею.
Если в кратце - доступ к привату не нужен. Тестируем чёрный ящик. Что он там делает внутри - его сложности. А тс нужно отложить в сторону тестирование, И сначала научиться собирать/ линковаться с библиотеками.
1
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 26.02.2017, 14:29 | |
|
Тогда я не понял просто сарказма уважаемого Убежденный Что на собеседовании показалось самым сложным
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 26.02.2017, 14:38 | |
|
rikimaru2013,
Да это же шутка такая) Доступ к приватам через шаблон - ни разу не востребованная багофича) Такое даже ревью никогда не пройдёт В реальности могут быть ситуации, Когда нужно тестить не просто функциональность, Но и взаимодействие между различными компонентами, С которыми механизм работает где-то у себя в потрохах Но вот для таких ситуаций и был придуман mock
1
|
|
| 26.02.2017, 22:07 [ТС] | ||
|
Что для такой тривиальной задачи можно заюзать что-то другое? Добавлено через 2 часа 56 минут Ну, в общем, слинковалось. Но как протестить функцию без создания mock-класса?
0
|
||
| 26.02.2017, 23:30 [ТС] | ||||||
|
Написал вот таким образом:
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 27.02.2017, 00:05 | |
|
Gdasar,
Нафига вы сделали класс-пустышку?
1
|
|
| 27.02.2017, 12:10 [ТС] | ||||||||||||||||
|
Всё, я дропнул пустышку.
И функцию теста переписал иначе
Добавлено через 51 минуту Кстати, а как протестировать вот такие реализации функций при отрицательных параметрах?
Добавлено через 13 минут Во, нагуглилось:
0
|
||||||||||||||||
| 25.05.2017, 00:39 | |
|
В этой статье два примера по GMock: Using a Mock Library to make Unit Testing Easier in C++ Пока что лучше этих примеров не находил.
В них есть кое-какие опечатки. Я их исправил. Использую VS 2015. Включил в проект GTest и GMock. Подключил по относительному пути (относительно $(SolutionDir)), поэтому можете скачать проекты и попробовать сразу запустить тесты. Если не запустятся, то опишите ошибки. Я решил, что лучше GTest и GMock включать исходниками в проект, а не либами, как во многих туторах советуют, так как места занимает меньше и мороки меньше. Мне так удобнее. Для визуального отображения в Test Explorer'e можно поставить бесплатное дополнение для VS: Google Test Adapter Приятной разработки через тестирование!
2
|
|
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 25.05.2017, 11:36 | |
|
А мне для юнит тестов нравится Catch. Простенькая, легковесная, подключается как хедер, осваивается за пару часов.
2
|
|
| 25.05.2017, 11:36 | |
|
Помогаю со студенческими работами здесь
19
Модульное программирование
Модульное программировапние на С++ (консоль)
Модульное деление на степень двойки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|