Модульные тесты предназначены только для одного фрагмента кода, который работает автономно внутри самого себя. Это означает, что он не зависит от других объектов для выполнения своей работы. Вы должны использовать mocks, если вы делаете тестовое программирование или тестовое программирование. Вы должны создать макет (или заглушку, как мне нравится его называть) функции, которую вы будете создавать, и установить определенные условия для прохождения теста. Первоначально функция возвращает значение false, и тест завершается неудачно, что и ожидается ... затем вы пишете код для выполнения реальной работы, пока он не пройдет.
Но я думаю, что вы имеете в виду интеграционное тестирование, а не юнит-тестирование. В этом случае вы должны использовать mocks, если вы ждете, пока другие программисты закончат свою работу, и у вас нет доступа к функциям или объектам, которые они создают. Если вы знаете интерфейс, который, как мы надеемся, в противном случае вы будете делать с насмешками, будет бессмысленным и бесполезной тратой времени, тогда вы можете создать тупую версию того, что вы надеетесь получить в будущем.
Короче говоря, насмешки лучше всего использовать, когда вы ждете других, и вам нужно что-то там, чтобы закончить вашу работу.
Вы должны стараться всегда возвращать значение, если это возможно. Иногда вы сталкиваетесь с проблемами, когда вы уже что-то возвращаете, но в C и C ++ вы можете иметь выходные параметры, а затем использовать возвращаемое значение для проверки ошибок.