2016-08-13 3 views
0

Когда я создаю тест TEST или TEST_F, как я могу узнать, что мое утверждение действительно выполняется?Вопросы о тестировании google test и assertion (результаты теста); могу ли я доверять, когда gtest говорит, что тест прошел?

Проблема у меня есть, когда у меня есть пустой TEST_F, например,

TEST_F(myFixture, test1) {} 

Когда он работает, GTEST говорит, что этот тест проходит. Я бы ожидал, что тест завершится неудачно, пока я не напишу тестовый код. Так или иначе.

Итак, моя проблема в том, что когда gtest говорит, что когда тест «ОК» или что он прошел, я не могу доверять ему, потому что тест может «пройти», если нет тестового кода.

Было бы неплохо напечатать то, что делают мои звонки EXPECT_ или ASSERT, а затем посмотреть, что они проходят. Проблема в том, что если я делаю какие-либо вызовы std::cout, которые, похоже, не синхронизированы с результатами тестов в конце. Выходные сообщения не синхронизируются с какими-либо из моих собственных вызовов std::cout.

Есть ли подробный вариант проверки google? Как я могу быть уверен, что EXPECT, который я закодировал, действительно работает?

+4

Я думаю, что вы думаете об утверждениях назад к фронту. Они не являются «инструкциями, которые необходимы для прохождения теста», это «утверждения, которые могут привести к сбою теста». Таким образом, я думаю, вы в основном спрашиваете: «Как я могу обеспечить, чтобы каждый тестовый сценарий выполнял хотя бы одно утверждение?». –

+0

Кроме того, вы можете обеспечить, чтобы ваши тесты были полезны, написав их * до того, как код работает, и просмотр их не позволяет им сбой по правильной причине. – jonrsharpe

+0

Да. Как я могу обеспечить выполнение утверждения? – mycodeplanet

ответ

0

Вы могли бы рассмотреть глядя на TDD, Test Driven Development, https://en.wikipedia.org/wiki/Test-driven_development

  • написать один тест => она не будет выполнена
  • код записи, чтобы сделать тест проход => тест проходит

Промыть и повторить: выразить каждое требование в качестве теста, который изначально не выполняется. Напишите код, чтобы пройти этот тест.

 Смежные вопросы

  • Нет связанных вопросов^_^