Мы разрабатываем С++-приложение с использованием Visual Studio 2008 и unit test с помощью Boost.Test. На данный момент у нас есть отдельное решение, которое содержит наши модульные тесты.
Многие из наших проектов в основном решении создают DLL. Мы ограничены в охвате тестированием, потому что мы не можем тестировать неэкспортированные классы.
У меня есть две идеи о том, как они могут быть протестированы:
- Экспортировать все
- Поместите тесты внутри DLL (тот же проект и решение) и используйте внешний бегун Boost.Test
Я не совсем уверен, какими будут недостатки. Номер 1 выше прерывает инкапсуляцию уровня модуля, а число 2 может привести к значительно большей DLL, если только не возможно включать только тестовый код в определенные конфигурации.
Итак, существуют ли какие-либо серьезные недостатки вышеприведенных методов или вы можете думать о других решениях?