Когда я создаю тест TEST
или TEST_F
, как я могу узнать, что мое утверждение действительно выполняется?Вопросы о тестировании google test и assertion (результаты теста); могу ли я доверять, когда gtest говорит, что тест прошел?
Проблема у меня есть, когда у меня есть пустой TEST_F
, например,
TEST_F(myFixture, test1) {}
Когда он работает, GTEST говорит, что этот тест проходит. Я бы ожидал, что тест завершится неудачно, пока я не напишу тестовый код. Так или иначе.
Итак, моя проблема в том, что когда gtest говорит, что когда тест «ОК» или что он прошел, я не могу доверять ему, потому что тест может «пройти», если нет тестового кода.
Было бы неплохо напечатать то, что делают мои звонки EXPECT_
или ASSERT
, а затем посмотреть, что они проходят. Проблема в том, что если я делаю какие-либо вызовы std::cout
, которые, похоже, не синхронизированы с результатами тестов в конце. Выходные сообщения не синхронизируются с какими-либо из моих собственных вызовов std::cout
.
Есть ли подробный вариант проверки google? Как я могу быть уверен, что EXPECT
, который я закодировал, действительно работает?
Я думаю, что вы думаете об утверждениях назад к фронту. Они не являются «инструкциями, которые необходимы для прохождения теста», это «утверждения, которые могут привести к сбою теста». Таким образом, я думаю, вы в основном спрашиваете: «Как я могу обеспечить, чтобы каждый тестовый сценарий выполнял хотя бы одно утверждение?». –
Кроме того, вы можете обеспечить, чтобы ваши тесты были полезны, написав их * до того, как код работает, и просмотр их не позволяет им сбой по правильной причине. – jonrsharpe
Да. Как я могу обеспечить выполнение утверждения? – mycodeplanet