Тестовый код принципиально отличается от производственного кода с точки зрения владения, развертывания, нефункциональных требований и так далее. Поэтому лучше хранить его отдельно от тестируемого кода, в отдельных файлах и, возможно, даже в отдельных каталогах.
Чтобы упростить модульное тестирование whitebox для тестируемого класса, вам часто нужно объявить тестовый класс / тестовые функции как друга. Некоторые классы можно тестировать только с публичными участниками, поэтому добавление друзей не всегда необходимо.
Объединить тестовый код и тестируемый код очень просто: вы просто связываете объектные файлы в одном проекте.
Иногда вы можете увидеть код модульного теста, который #include
представляет собой тестируемый код, но я бы советовал против этого - например, если у вас есть инструмент измерения покрытия тестирования (настоятельно рекомендуется!), Меры не будут исправить для тестируемого кода.