Проверьте работоспособность с неявным намеренным отказом

#android #unit-testing #android-intent #mockito #android-espresso

Вопрос:

Я пытаюсь найти способ проверить сценарий сбоя startActivity с неявным намерением.

Поэтому у меня есть такое намерение:

 val intent = Intent(Intent.ACTION_VIEW, uri)
 

И я хочу протестировать сценарий, куда startActivity(intent) будут кидать ActivityNotFoundException .

Я использовал Intents.intending() для подавления сценария успеха, но у этого нет способа проверить такой сценарий. Другой вариант, который я пробовал, был с фиктивной активностью и созданием шпиона за ней, но у этого есть большой недостаток, что мне нужно добавить эту активность в свой манифест (чего я хочу избежать).

Есть какие-нибудь идеи о том, как это можно протестировать, не затрагивая производственный код?

Комментарии:

1. Если у вас есть тип сборки отладки, вы можете добавить это действие только в файл манифеста отладки и тем самым не повлиять на «производственный» код.

2. Спасибо за предложение @gosr, но это не сработает для меня, так как некоторые тесты также будут выполняться в производственном коде, и мне нужно, чтобы действие было доступно и для тестирования в производственном коде.