Я просто хочу проверить, что получение ресурса String соответствует тому, что, по моему мнению, должно быть равным. Кажется, моя проблема в том, что в моем проекте есть Realm. Я знаю, что Robolectric не поддерживает Realm (об этом говорится в документации), но я вообще не использую Realm, поэтому чувствую, что есть способ сделать это.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = "app/src/main/AndroidManifest.xml")
public class ResourceTester {
@Test
public void testingString() {
String resourceString = RuntimeEnvironment.application.getString(R.string.app_name);
assertEquals(resourceString, "Yeah");
}
}
Похоже, что он ПЫТАЕТСЯ вызвать Realm
java.lang.UnsatisfiedLinkError: Can't load library:
/var/folders/3x/ddxtg5fs1hxgqrp6h63vsc140000gp/T/android-tmp-
robolectric3612430387389787158/app_lib/librealm-jni.dylib.3.5.0
РЕДАКТИРОВАНИЕ: Я попробовал еще кое-что, и кажется, что установка манифестав аннотации @Config является проблемой, но затем я получаю исключение android.content.res.Resources$NotFoundException: неизвестный ресурс 2131362072
Есть еще мысли? Могу ли я создать другой класс приложения, в котором не вызывается Realm? Откуда каталог /test узнает об этом?
РЕДАКТИРОВАТЬ ДЛЯ ДЭВИДА:
Я попробовал это:
@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
но я получаю:
android.content.res.Resources$NotFoundException: unknown resource 2131362072
Если я изменю его на
@RunWith(RobolectricTestRunner.class)
//@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
Я понимаю
WARNING: No manifest file found at ./AndroidManifest.xml.Falling back to the Android OS resources only.
To remove this warning, annotate your test class with @Config(manifest=Config.NONE).
android.content.res.Resources$NotFoundException: unknown resource 2131362072
Подробнее здесь: https://stackoverflow.com/questions/452 ... obolectric
Android – тестирование строкового ресурса с помощью Robolectric ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1763765211
Anonymous
Я просто хочу проверить, что получение ресурса String соответствует тому, что, по моему мнению, должно быть равным. Кажется, моя проблема в том, что в моем проекте есть Realm. Я знаю, что Robolectric не поддерживает Realm (об этом говорится в документации), но я вообще не использую Realm, поэтому чувствую, что есть способ сделать это.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = "app/src/main/AndroidManifest.xml")
public class ResourceTester {
@Test
public void testingString() {
String resourceString = RuntimeEnvironment.application.getString(R.string.app_name);
assertEquals(resourceString, "Yeah");
}
}
Похоже, что он [b]ПЫТАЕТСЯ[/b] вызвать Realm
java.lang.UnsatisfiedLinkError: Can't load library:
/var/folders/3x/ddxtg5fs1hxgqrp6h63vsc140000gp/T/android-tmp-
robolectric3612430387389787158/app_lib/librealm-jni.dylib.3.5.0
[b]РЕДАКТИРОВАНИЕ:[/b] Я попробовал еще кое-что, и кажется, что установка манифестав аннотации @Config является проблемой, но затем я получаю исключение android.content.res.Resources$NotFoundException: неизвестный ресурс 2131362072
Есть еще мысли? Могу ли я создать другой класс приложения, в котором не вызывается Realm? Откуда каталог /test узнает об этом?
[b]РЕДАКТИРОВАТЬ ДЛЯ ДЭВИДА:[/b]
Я попробовал это:
@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
но я получаю:
android.content.res.Resources$NotFoundException: unknown resource 2131362072
Если я изменю его на
@RunWith(RobolectricTestRunner.class)
//@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
Я понимаю
WARNING: No manifest file found at ./AndroidManifest.xml.Falling back to the Android OS resources only.
To remove this warning, annotate your test class with @Config(manifest=Config.NONE).
android.content.res.Resources$NotFoundException: unknown resource 2131362072
Подробнее здесь: [url]https://stackoverflow.com/questions/45226450/android-testing-a-string-resource-with-robolectric[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия