Articles of тестирование

Как отправить ключевые события в безгласный эмулятор в контрольно-измерительном тесте?

В настоящее время мы работаем над набором контрольно-измерительных тестов, который работает на нашем сервере сборки, но в то время как тесты проходят на dev-машине с использованием обычного эмулятора Android, сборки не работают на сервере сборки, так как там мы запускаем безжизненный эмулятор с -no-window flag. Ошибка возникает при попытке вызвать метод InstrumentationTestCase.sendKeys() чтобы программно открыть […]

Mockito AbstractMethodError on initMocks

Поэтому я изо всех сил стараюсь изо дня в день пытаться заставить Mockito работать в моем проекте Android. Я добавил все в свой файл сборки Gradle: androidTestCompile 'org.mockito:mockito-core:2.0.29-beta' androidTestCompile "junit:junit:4.12-beta-3" androidTestCompile 'com.google.dexmaker:dexmaker:1.2' androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' И попробовали запустить тест, который на самом деле ничего не делает: @RunWith(MockitoJUnitRunner.class) public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> { private LoginActivity loginActivity; […]

Как протестировать класс, используя контент-резольвер / провайдер?

Я пытаюсь проверить класс, который запрашивает разрешение на контент. Я хотел бы использовать MockContentResolver и mock query . Проблема в том, что этот метод является окончательным. Что мне делать? Использовать насмешливую структуру? Макет другого класса? Заранее спасибо. public class CustomClass { private ContentResolver mContentResolver; public CustomClass(ContentResolver contentResolver) { mContentResolver = contentResolver; } public String getConfig(String […]

Могу ли я получить контрольный тест, чтобы убить и перезапустить процесс приложения?

Мне нужно проверить пример использования, когда приложение запускается из чистого состояния – то есть процесс не запускался до начала теста. Из того, что я вижу из logcat, все контрольные тесты выполняются под одним экземпляром / сеансом процесса, поэтому результат теста в моем случае зависит от того, выполняется ли он как # 1 или нет. Это […]

Существующие тесты пользовательского интерфейса Android перестали работать после перехода на AndroidJUnitRunner

У нас есть несколько тестов пользовательского интерфейса вокруг наших функций камеры, и после того, как мы сделали переход от InstrumentationTestRunner к AndroidJUnitRunner в рамках нашего перехода на Espresso / JUnit4, мы больше не можем запускать наши существующие тесты надежно из-за частого исключения RuntimeException, когда мы вызываем getActivity() : java.lang.RuntimeException: Could not launch intent Intent { […]

Диалоговое окно тестирования в ActivityUnitTestCase от Android

Я пытаюсь проверить активность в android, которая покажет ProgressDialog, и все работает отлично в приложении, однако, когда я пытаюсь использовать ActivityUnitTestCase, и тест заставляет Activity показывать диалоговое окно с ошибкой: android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application at android.view.ViewRoot.setView(ViewRoot.java:429) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:178) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.view.Window$LocalWindowManager.addView(Window.java:392) Я смотрел на проблему, […]

Попытка вызвать метод интерфейса для ссылки на нулевой объект finishComposingText ()

Я запускаю robotium на nexus 6 и получаю следующую ошибку java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.finishComposingText()' on a null object reference at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78) at android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:859) at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3253) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Соответствующая строка: solo.enterText((android.widget.EditText) solo.getView("amount"), "11.11"); Я проверил, что поле существует, но […]

ActivityUnitTestCase и startActivity

В JavaDoc ActivityUnitTestCase говорится: Не вызывайте из метода setUp (). Вы должны вызвать этот метод из каждого из ваших методов тестирования. Не помещает ли что-нибудь в каждый тестовый метод, эквивалентный помещению его в setUp , учитывая, что вся идея этого метода заключается в том, чтобы делать именно это, т.е. выполнять что-то перед каждым тестом? Кроме […]

AsyncTask onPostExecute () не вызывается в модульном тесте

Я видел кучу сообщений, связанных с этим, но у меня нет той же проблемы, которую я получаю. GetBusinessRulesTask расширяет AsyncTask. Когда я выполняю это в единичном тестовом примере, onPostExecute () никогда не вызывается. Однако, если я использую настоящий клиентский код, то onPostExecute () вызывается каждый раз. Не уверен, что я здесь делаю неправильно. Прецедент: package […]

Android WebView SSL «Предупреждение о безопасности»

Я создаю тестовую версию приложения для клиента. Часть этого приложения использует WebView, который вызывается на сайт, основанный на SSL. В свою очередь, клиент предоставил тестовый домен, где имя сертификата не соответствует FQDN. Увы, они не в состоянии предоставить сертификат, который соответствует. 🙁 Я работаю над этой проблемой в сопутствующем приложении iOS ad hoc с одной […]