Звучит как необходимость перехода к интеграционному тестированию.
Если подумать, то причиной может быть хардкод, который остался незамеченным, ну или тест составлен неправильно, например, моками лишнее переопределено.
В мобильной разработке вообще юнит-тесты на два типа делятся - локальные, которые "в песочнице" выполняются, и инструментальные, которые прогоняются на реальном устройстве, которое может сильно влиять на процесс. Локальные могут врать, потому что выполняются в идеальной среде и не учитывают косяков API. Вплоть до того доходило, что release и debug версии выполнялись по-разному, из-за того, что в работу вмешивались оптимизаторы кода и ошибки проявлялись по причине того, что отваливалась часть (не вся!) сторонней библиотеки.
Как итог, когда научился не писать спагетти-код, от юнит-тестов практически отказался.