Модульное тестирование в Qt с высокозависимыми функциями - PullRequest
1 голос
/ 20 августа 2010

Я новичок в модульном тестировании. Я хочу кодировать модульные тесты в Qt, но мои функции (логин, запрос и т. Д.) Сильно зависят от других ресурсов, таких как сервер.

Как я могу поставить блок-бокс в этой ситуации?

Знаете ли вы какой-нибудь проект с открытым исходным кодом, который я могу исследовать в модульных тестах для подобных ситуаций?

Ответы [ 3 ]

4 голосов
/ 21 августа 2010

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

См. Например:

для более подробной информации.

PS. Преимущество такого поведения компоновщика заключается в том, что вам не нужно сначала объявлять свои классы как интерфейс, как, например, требуется для среды Google mocking.

3 голосов
/ 20 августа 2010

Вам нужно использовать насмешки. У Google есть C ++ mocking framework . Вам также нужно будет изменить дизайн своего кода, чтобы использовать интерфейсы вместо кода сокета и т. Д., Которые заменяются фиктивными объектами при запуске тестов.

0 голосов
/ 20 августа 2010

Взгляните на QTestLib . Это среда модульного тестирования, которая поставляется с Qt. Qt позволяет вам моделировать такие события, как щелчки мыши и события клавиатуры (сигналы), а также отслеживать события (сигналы), генерируемые вашим приложением.

...