Как стать автором
Обновить

Комментарии 10

Спасибо. Но если бы написали и о том, как использовать Gtest вне Visual Studio, поставил бы плюс.
Об использовании Gtest в linux (думаю, что применимо много где) и об автоматизации процесса тестирования: habrahabr.ru/post/133315/
Спасибо!
А чем лучше? Просто нагляднее или быстрее, или почему? Мне больше нравится везде писать ASSERT_TRUE — так не нужно запоминать все те три десятка макросов из GoogleTest и легко копировать\вставлять строки с тестами.
Сообщение о провалившемся тесте проще в восприятии. Сравните:

//EXPECT_TRUE(1 == (1 - 1));
Value of: 1 == (1 - 1)
  Actual: false
Expected: true

и

//EXPECT_EQ(1, 1 - 1);
Value of: 1 - 1
  Actual: 0
Expected: 1
Потому что в твоем случае ты не увидишь значения getPerimiter, если ассерт зафейлится. И если для таких простых примеров это не критично, то для реальных тестов необходимость знать что за статус вернула функция или состояние принял объект — крайне важно для тестирования.
Мне как-то обычно хватает бинарного «тест прошел\тест зафейлился» — потому что если он зафейлился, в любом случае надо лезть разбираться, что бы там тест-кейс не выдал. Но ок, соглашусь, что это аргумент — действительно может помочь быстрее понять причину провала.
А вы с boost::test работали? Для начала было бы не плохо

Общей архитектурой он слегка напоминает общепринятые boost::test и CppUnit, хотя слегка отличается в деталях (как по мне — в лучшую сторону)


перечислить эти детали.

Я работал с обоими, правда это было давно, но чем то мне gtest не понравился, и я помню что мы прям съезжали с gtest на boost. Вспомнить в чем были проблем щас уже не смогу, но вот если бы увидеть сравнительную статью этих двух фраемворков было бы очень здорово.

Притом просто «hellow test» это не круто. Круто это когда вы смогли бы показать боле менее живой пример с сьюитами и кейсами, общими инициализационными классами, параметризацией выполнения, фильтрацией выхлопа…
Stackoverflow категорично в каждом буквально вопросе на эту тему склоняется к gtest: раз, два, три, четыре.

Лично меня Гугл Тест подкупил необходимостью всего один раз объявить тест-кейс. В CppUnit, к примеру, это нужно сделать 3 раза: в заголовочном файле, в cpp-файле и при старте тестов.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий