Я пытаюсь настроить некоторые модульные тесты для существующего проекта C++.Единичное тестирование и издевательствование небольших, значащих классов в C++
Вот установка: Я выбрал Google Mock, в который входит Google Test. Я добавил еще один проект (называемый Tests) в решение Visual Studio. Единицы для тестирования находятся в другом проекте под названием Main. План состоит в том, чтобы добавить каждый файл cpp, который я хочу протестировать в проекте Tests. Проект Tests имеет доступ ко всем файлам заголовков из Main.
Я добавил один файл cpp в проект Tests, и он компилируется, но появляется ошибки компоновщика. Большинство из них связаны с классом, производным от COleDateTime, называемым CTimeValue. У тестируемого устройства есть методы с параметрами CTimeValue с параметрами pass-by-value, а также объявляются некоторые атрибуты CTimeValue.
Я хочу протестировать UUT изолированно и использовать издевательства и подделки для всех зависимостей. Я не вижу, как это сделать с помощью CTimeValue. Он используется как ценность, не содержит виртуальных методов, но все еще довольно сложный и заслуживает отдельного модульного теста.
CTimeValue - это только один из многих классов, который подобен этому в проекте. Как я могу изолировать тестирование классов, которые используют эти пользовательские типы?
Cheers, Felix
Это должно будет сделать, спасибо за ответ. Mocks, похоже, не работают хорошо с семантикой стоимости. – TheFogger