2016-04-04 1 views
2

можно написать тест эспрессо в андроид-студии вне кода приложения? Я читаю в документации Espresso, которая позволяет создавать тесты с ящиками с эспрессо, но я не нахожу, как это сделать.Тесты эспрессо в студии андроида

ответ

0

Взгляните на наш discussion thread at reddit, есть одно решение для этого.

Также я разрабатываю плагин для Android Studio, который упростит это. Вы можете subscribe for news about it и я сообщу вам, когда будет готовиться.

+0

Спасибо большое. Это было именно то, что я искал –

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.

enter image description here Нажмите кнопку OK, как это: -

/** 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(); 
}