Модульное тестирование Windows C ++: тестирование dll-экспортированного класса - PullRequest
3 голосов
/ 16 сентября 2010

У меня есть новый собственный класс C ++, который я хочу протестировать.Он экспортируется из dll (проект состоит из 1 exe и большого количества dll)

Что лучше: проверить его статическим или динамическим соединением?Что вы обычно делаете в своих проектах?

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

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

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

В моих проектах я люблю тестировать напрямую DLL, поэтому у меня есть доступ к экспортированным функциям и классам точно так же, как это будет работать в реальном приложении (могут быть некоторые тонкие различия со статическим связыванием).

0 голосов
/ 20 октября 2010

На работе мы пытаемся запустить два набора тестов.

Во-первых, мы статически связываемся для модульных тестов каждой функции, независимо от того, экспортирована она или нет. Это позволяет нам тестировать каждую функцию в более контролируемой среде, устраняя любые проблемы, которые мы находим в «внутреннем» коде.

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

Этот метод хорошо сработал для нас, так как мы обнаружили ошибки в статически связанных тестах, которые мы исправили до нахождения различных ошибок при запуске динамически связанных тестов. Если бы мы тестировали только с использованием динамического связывания, мы бы потратили больше времени на отладку / исправление составной проблемы, чем фактически потратили бы на решение двух отдельных, изолированных проблем.

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