можно написать тест эспрессо в андроид-студии вне кода приложения? Я читаю в документации Espresso, которая позволяет создавать тесты с ящиками с эспрессо, но я не нахожу, как это сделать.Тесты эспрессо в студии андроида
2
A
ответ
0
Взгляните на наш discussion thread at reddit, есть одно решение для этого.
Также я разрабатываю плагин для Android Studio, который упростит это. Вы можете subscribe for news about it и я сообщу вам, когда будет готовиться.
1
Создать отдельный проект со следующими зависимостями:
compile 'com.android.support.test.espresso:espresso-core:2.2.2'
compile 'com.android.support.test:runner:0.5'
compile 'junit:junit:4.12'
я использовать этот манифест
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.test.test"xmlns:android="http://schemas.android.com/apk/res/android">
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:targetPackage="com.imc.imc" >
<instrumentation>
</manifest>
я создать новый класс в SRC/главная/Java/com.test.test имени MainActivityTest
public class MainActivityTest {
@Rule
public ActivityTestRule<?> mActivityRule = newActivityTestRule("com.imc.imc.MainActivity");
@NonNull
private ActivityTestRule newActivityTestRule(String className) {
return new ActivityTestRule(activityClass(className));
}
private static Class<? extends Activity> activityClass(String className) {
try {
return (Class<? extends Activity>) Class.forName(className);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
private static int getId(String id) {
Context targetContext = InstrumentationRegistry.getTargetContext();
String packageName = targetContext.getPackageName();
return targetContext.getResources().getIdentifier(id, "id", packageName);
}
@Test
public void mytest() {
onView(withId(getId("button"))).perform(click());;
}
}
но это не работает !!!!!!
1
Вы можете использовать UI Automator для тестирования пользовательского интерфейса кросс-приложения, например, , взаимодействуя с диалоговым окном GPS, созданным с помощью SettingsAPI. Подробнее об этом here.
/** UI Automator Google GPS dialog box */
UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject uiObject = mDevice.findObject(new UiSelector().text("OK"));
try {
uiObject.click();
}catch (UiObjectNotFoundException e) {
e.printStackTrace();
}
Спасибо большое. Это было именно то, что я искал –