Я пытаюсь настроить несколько тестов эспрессо для своего приложения.Могут быть объединены тесты и тесты эспрессо в одном пакете
Я хочу позвонить onActivityResult() из одного из тестов, но поскольку он защищен, он не будет работать, если тест находится в другом пакете.
Но если это испытание в одном пакете, а затем пытается запустить юнит-тестов завершается с ошибкой, как:
Класс не найден: «com.example.MainActivityTest» Пустой набор тестов.
Даже лучший подход будет заключаться в использовании эспрессо-намерений, где вы могли бы в основном перехватить намерение «запросить» и ответить с помощью консервированного ответа. Если этот сценарий возможен, конечно, из тестовой перспективы :) –
Espresso-Intents - это расширение для Espresso, которое позволяет проверять и удалять Intents * отправлено * тестируемым приложением. Затем вы сможете протестировать часть 'startActivityForResult()', но не, если ожидаемое поведение будет показано при получении Intent в 'onActivityResult()' –
OK, я выяснил способ использования Espresso Intents для вызова * onActivityResult *. В принципе, как раздел * Stubbing Intents * от https://google.github.io/android-testing-support-library/docs/espresso/intents/, но замените * toPackage * в заглушке на * hasComponent *, чтобы соответствовать активности, которая отправит результат. Поэтому изменение этого диалога для активности было немного более разрушительным для моих тестов, чем я надеялся, но это исправляет его с помощью тестов эспрессо, изолированных от обычных модульных тестов. –