Articles of robolectric

Использование Espresso 2.0 + Roboelectric в Android-проекте

У меня уже есть куча теста Roboelectric. Я хочу добавить Espresso 2.0, который был недавно представлен. Roboelectric представил проект шаблона градир-град, чтобы решить проблему использования Roboelectric и Espresso вместе. Но решение для Espresso 1.1, которое сейчас устарело. Это часть моего файла build.gradle, чтобы использовать Espresso 2.0, в то время как у меня есть Roboelectric, а […]

Robolectric – приложение имеет синглеты в настройке, вызывая проблемы с тестами

В настоящее время я унаследовал приложение для Android, которое имеет нулевой охват кода, и моя первая работа – получить некоторые модульные тесты, написанные для него. Поэтому я решил использовать его как возможность изучить Robolectric. Однако я сталкиваюсь с первоначальными проблемами, получая два простых манекена для запуска. Вот мой код в моем тестовом файле: @Config(constants = […]

Java.lang.ClassNotFoundException: android.R

Я пытаюсь запустить простой junit-тест с Robolectric 2.2, но я получаю следующее сообщение об ошибке ADT package 22: java.lang.NoClassDefFoundError: android/R at org.robolectric.bytecode.Setup.<clinit>(Setup.java:40) at org.robolectric.RobolectricTestRunner.createSetup(RobolectricTestRunner.java:137) at org.robolectric.RobolectricTestRunner.createSdkEnvironment(RobolectricTestRunner.java:115) at org.robolectric.RobolectricTestRunner$3.create(RobolectricTestRunner.java:278) at org.robolectric.EnvHolder.getSdkEnvironment(EnvHolder.java:21) at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:276) at org.robolectric.RobolectricTestRunner.access$100(RobolectricTestRunner.java:57) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:190) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177) at […]

Robolectric доступ к базе данных вызывает ошибку

У меня есть тест, который создает активность, которая пытается получить некоторые данные из базы данных. Это не с SQLiteException 17:40:40.528 [DEBUG] [TestEventLogger] android.database.sqlite.SQLiteException: Cannot open SQLite connection, base error code: 14 17:40:40.528 [DEBUG] [TestEventLogger] at org.robolectric.shadows.ShadowSQLiteConnection.rethrow(ShadowSQLiteConnection.java:53) 17:40:40.528 [DEBUG] [TestEventLogger] at org.robolectric.shadows.ShadowSQLiteConnection.access$600(ShadowSQLiteConnection.java:30) 17:40:40.529 [DEBUG] [TestEventLogger] at org.robolectric.shadows.ShadowSQLiteConnection$Connections.execute(ShadowSQLiteConnection.java:443) 17:40:40.529 [DEBUG] [TestEventLogger] at org.robolectric.shadows.ShadowSQLiteConnection$Connections.open(ShadowSQLiteConnection.java:345) 17:40:40.529 [DEBUG] [TestEventLogger] at […]

Запустите Robolectric в IDEA за прокси-сервером

У меня есть корпоративная среда, в которой все HTTP и HTTPS-вызовы находятся за прокси-сервером. Я смог исправить некоторые проблемы с загрузкой в ​​командной строке, поставив экспорт переменной среды http_proxy в файл .profile. Но с Robolectric 2.2, который загружает исходники или классы для Android до первого запуска, я потерпел неудачу. У меня нет настроек CI, поэтому […]

Robolectric и Android Studio 1.1.0 и тестирование библиотеки

У меня возникают проблемы с тем, чтобы мои модульные тесты Robolectric выполнялись в рамках экспериментального варианта тестирования AS 1.1. Ошибка, которую я получаю, показана ниже; java.lang.NoClassDefFoundError: com/my/app/R$string at com.my.app.MoneyFormatter.formatDealMessage(MoneyFormatter.java:63) … Caused by: java.lang.ClassNotFoundException: com.my.app.R$string at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.robolectric.bytecode.AsmInstrumentingClassLoader.loadClass(AsmInstrumentingClassLoader.java:100) … 46 more Я […]

Robolectric 3.0: Mocking System.currentTimeMillis ()

Я пытаюсь изменить значение, возвращаемое System.currentTimeMillis (), поэтому я могу выполнять такие операции, как: записать что-то в базу данных, симулировать ожидание 5 минут, сделать запрос в базе данных (запрос зависит от того, когда значение записано ). Код, предложенный в [этой нитью SO]: ShadowSystemClock shadowClock = Robolectric.shadowOf(SystemClock.class); shadowClock.setCurrentTimeMillis(1424369871446); Не компилируется с момента удаления метода shadowOf. Попробуйте […]

Android Studio 1.1.0 не может настроить Robolectric

Я использовал Robolectric перед Android 1.1.0, но я больше не могу его использовать после того, как я его обновил. Я разобрал его и попробовал некоторые решения, но никто из них не работал. Вот мои текущие настройки: project.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' classpath 'com.github.jcandksolutions.gradle:android-unit-test:2.1.1' // NOTE: Do not place your […]

Robolectric не использует ShadowWebView в качестве суперкласса класса, который расширяет WebView. Вместо этого исключение MustOverrideException

Я пытаюсь заставить Robolectric 2.1 работать с моим проектом и получать исключение MustOverrideException, когда мой подкласс WebView пытается вызвать setDatabasePath на его WebSettings. У меня есть собственный класс приложений, который пытается создать экземпляр подкласса WebView в onCreate. Как часть этого конструктора WebView, он пытается установить путь к базе данных. Я бы подумал, что, поскольку getSettings […]

Android Instrumentation test java.lang.UnsatisfiedLinkError при использовании AndroidJunitRunner и AndroidJUnit4

Я использую robolectric в наших модульных тестах. Недавно в нашем проекте мы добавляем новую зависимость от zendesk. repositories { maven { url 'https://zendesk.artifactoryonline.com/zendesk/repo' } } compile group: 'com.zendesk', name: 'sdk', version: '1.3.0.1' Теперь мы даже не ссылались на какой-либо класс из этой библиотеки, и мы получаем исключения в наших тестах robolectric, просто добавляя эту зависимость. […]