Найти в Дзене
Тестирование

Тестирование

Здесь собраны статьи по тестированию кода
подборка · 6 материалов
2 месяца назад
Тестируем код зависящий от временных интервалов
Представим что Вам нужно протестировать функцию, которая работает со временем, ожидая, к примеру, 5 секунд. Как протестировать такой код в google mock чтобы при каждом прогоне теста не ждать 5 секунд? Для того, чтобы тесты выполнялись мгновенно, необходимо вынести функционал работы с системным временем в отдельную абстракцию. Вместо прямого вызова std::this_thread::sleep_for или использования std::chrono::system_clock код должен обращаться к интерфейсу, абстрагирующему работу со временем. class...
3 месяца назад
Пишем фейковые объекты для тестов c Google Mock
В модульном тестировании фейк - это ограниченная реализация более сложного механизма, выполненная для упрощения процесса. Примером может служить использование объекта класса std::map вместо реальной базы данных. Другими словами, фейк - это упрощенная, но рабочая реализация зависимости тестируемого функционала. Есть два основных способа использовать gmock и gtest для фейков: Пусть мы разрабатываем систему хранения данных, где клиент взаимодействует с базой не напрямую, а через класс DBStorer. Одним...
3 месяца назад
Тестируем реализацию шаблона проектирования singleton c Google Mock
Согласно Википедии «синглтон» - это шаблон, ограничивающий создание экземпляра класса одним единственным экземпляром. Он описан в книге о паттернах проектирования «Банды четырёх», посвещенной способам решения повторяющихся проблем в объектно-ориентированном программировании. Паттерн используется когда в системе необходимо обеспечить существование ровно одного объекта. Шаблон «синглтон» позволяет: Пусть «синглтон» нужен для того чтобы гарантировать наличие только одного объекта Logger, записывающего сообщения в std::cout...
3 месяца назад
Учимся писать тестируемый код и проверять его с Google Mock
К числу основных требований, предъявляемых к модульным тестам, можно отнести следующие: Однако выполнить их далеко не всегда бывает просто. Разработчики зачастую не задумываются о вопросах тестирования, и пишут код в котором объекты одного класса будут создавать внутри себя объекты другого класса, а те, в свою очередь, объекты третьего класса и т.д. В результате проверяемый код будет требовать большое количество зависимостей, что крайне затрудняет процесс тестирования. Хуже того, код может быть связан с внешней системой и зависеть от её состояния...
3 месяца назад
Знакомство с библиотекой Google Test
Google Test(gtest) является одной из популярных библиотек модульного тестирования. Тесты не требуется отдельно регистрировать для запуска. Каждый объявленный в программе тест автоматически будет запущен. Тесты можно объединять в группы (наборы). Кроме того, gtest позволяет использовать тестовые классы/фикстуры (test fixture). С их помощью можно создавать и повторно использовать конфигурацию объектов для нескольких различных тестов. Пусть нужно протестировать отдельную функцию с сигнатурой int Fibonacci(int n), осуществляющую расчет n-го числа Фибоначчи...
3 месяца назад
Тестируем код c Google Test, используя паттерн ААА, на основе классов эквивалентности
При тестирования кода перед разработчиком сразу возникает два вопроса: Ответы на них необходимо искать с использованием классов эквивалентности. Классы эквивалентности — это техника проектирования тестов, при которой входные данные разбиваются на группы (классы), внутри которых программа должна вести себя одинаково. Поэтому достаточно протестировать один представитель из каждого класса, вместо проверки всех возможных значений. Эта техника называется Equivalence Partitioning и используется в модульных, интеграционных и функциональных тестах...