2015-02-12 2 views
-1

Я имею в виду, это 2 подхода относительно структуры тестирования:
Первый вариантЛучшая структура тестирования

  • UnitTest
    • Feature1
    • feature2
    • и т.д.
  • IntegrationTest
    • Feature1
    • feature2
    • и т.д. ...

Второй вариант:

  • Характеристика 1
  • Feature 2
  • и т.д.
  • cmakeUnitT
  • cmakeIntegration


Третий вариант?
Мне нравится первая, потому что у нас каждый тест хорошо разделен, но во втором мы имеем каждую функцию со всеми ее тестами. Есть ли какие-либо преимущества для любого из них? Есть ли лучший способ организовать тесты? (C++, gtest и mocks везде)

ответ

1

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

1

Я бы выбрал первый вариант. хотя он разбивает тесты на ту же функцию, что позволяет вам легче запускать все модульные тесты из вашей IDE - вы просто выбираете верхнюю папку всех модульных тестов или модульных тестов для конкретной функции и выполняете все модульные тесты. и позже вы можете возобновить их с помощью одного ярлыка. и перезапуск единичных тестов является одним из наиболее важных и наиболее часто встречающихся во время программирования. почему он не работает так хорошо с интеграционными тестами?потому что они являются способом медленнее и часто требуют дополнительной настройки

поэтому пока второй вариант является более чистым и ортодоксальным, то первый из них является просто более практичным

, если у вас есть слишком много «функция х» папок/файлов, то вы можете всегда ввести еще один уровень, как

  • модульных тестов
    • компонентов 1
      • удобства 1
      • функция 2
Смежные вопросы