написание тестовых сценариев для классов в моей программе на С ++, работающей на Linux - PullRequest
0 голосов
/ 02 февраля 2011

Я новичок в написании тест-кейсов, поэтому я не знаю о тест-кейсах. Можете ли вы вкратце рассказать о тест-кейсах, а также о том, как я могу написать тест-кейс для моей программы на С ++ (классы, функции-члены , переменные-члены, ....) помогите мне написать их, скомпилировать и запустить.

Заранее спасибо

Ответы [ 2 ]

9 голосов
/ 02 февраля 2011

Прежде всего:

  1. Сначала найдите себе фреймворк по своему вкусу: Википедия список фреймворков здесь
  2. Установите и прочитайте документацию
  3. Определите инварианты, действительные и недействительные входные данные ваших методов и напишите тесты, которые обеспечат их выполнение. Я рекомендую писать тесты, которые тестируются в «черном ящике». То есть вас не волнует, как методы это делают, но вы проверяете, что результаты в порядке с хорошим вводом (угловые случаи и нормальные случаи), а также, что он дает хорошие результаты при плохом вводе.
  4. В этом ответе уточняется, как писать хорошие тесты

Некоторые общие советы:

  • Написание тестов, которые либо не пройдут, либо нет, написание тестов, которые , вероятно, не пройдут, если что-то не так - это лаваш.
  • Никогда не доверяйте тесту, который вы не видели неудачным.
  • Написать один тест за раз
  • Постарайтесь сделать тестовые случаи максимально автономными. Убедитесь, что вы тестируете код, представленный для тестирования, а не его инфраструктуру. Модульное тестирование - отличный способ убедиться, что ваши классы зависят от интерфейсов.
  • Чаще всего проверять детали реализации метода - плохая идея. Вы не хотите, чтобы тесты не выполнялись, когда кто-то правильно переписывает код. Если вы чувствуете необходимость протестировать реализацию, у вас, вероятно, есть другой класс, скрывающийся в коде, который также должен быть протестирован.
1 голос
/ 02 февраля 2011

Cxxtest действительно полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...