У меня есть вопрос о том, как тестировать 2 класса, которые имеют зависимость друг от друга, но не могут быть протестированы вместе. Я не могу создать достаточно короткий пример кода, поэтому я попытаюсь объяснить его гипотетическими классами. Извините, если это слишком запутанно, но я все еще пытаюсь привести краткий пример.
В этом примере мы имеем дело с 4 различными классами: ObjectCreator, ObjectUser1, ObjectUser2 и Object. В модульных тестах для ObjectUser1 и ObjectUser2 каждый явно создает экземпляр объекта, который будет использоваться. ObjectCreator также имеет модульные тесты для обеспечения «правильной» конструкции экземпляра Object. Все юнит-тесты успешно пройдены. Теперь обнаружена ошибка в ObjectUser1, которая не была обнаружена в модульных тестах. Эта ошибка происходит из-за несовместимости между тем, как ObjectCreator создает объект, и тем, как ObjectUser1 использует его. Эта ошибка не существует в ObjectUser2. Исправление ошибки - изменить способ, которым ObjectCreator будет создавать объект. Проблема, с которой я сталкиваюсь, заключается в том, что когда я меняю ObjectCreator, все модульные тесты снова проходят, но я знаю, что новое изменение сломало ObjectUser2 (модульные тесты проходят для ObjectUser2 из-за способа, которым Object создан для модульного теста). Давайте предположим, что я не хочу использовать ObjectCreator в модульных тестах для ObjectUser1 и ObjectUser2 по причинам сложности.
Это распространенная проблема в модульном тестировании? Каков наилучший способ проверить зависимости, если они не могут быть протестированы вместе? Буду признателен за любую помощь в этом.