Я пытаюсь написать тест черного ящика для приложения, в котором у меня есть только APK (без исходного кода) с помощью Robotium. Документация очень плохая и ограничена Eclipse. Я пытаюсь понять, как писать такие тесты на Android Studio. До сих пор я создал новый проект и модифицировал Gradle файл для зависимостейТестирование черного ящика Android Studio с Robotium
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.crysis.myautomatedtest"
minSdkVersion 18
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.jayway.android.robotium:robotium:5.4.1'
compile 'com.jayway.android.robotium:robotium-solo:5.4.1'
}
тогда я писать тесты, и я положил их в основной папке (так как это тест-только проект, протестировать внешний APK)
package com.crysis.myautomatedtest;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import com.robotium.solo.Solo;
public class RobotiumTest extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.external.apptotest.LoginActivity";
private static Class launcherActivityClass;
static {
try {
launcherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public RobotiumTest() throws ClassNotFoundException {
super(launcherActivityClass);
}
private Solo mDevice;
@Override
public void setUp() throws Exception {
mDevice = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
mDevice.finishOpenedActivities();
}
public void testLogin() {
mDevice.clearEditText((EditText)mDevice.getView("id/username"));
mDevice.enterText((EditText) mDevice.getView("id/username"), "Test");
assertTrue("Problem asserting text", mDevice.searchText("Test"));
}
}
Это мое понимание того, что для того, чтобы найти приложение, я должен изменить манифест и точку в targetPackage. Я судимый как этого
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.crysis.myautomatedtest">
<application android:allowBackup="true" android:label="@string/app_name"
android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.external.apptotest" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
Но есть ошибка в этой строке, которая заявляет
не удается разрешить символ «com.external.apptotest» (то есть пакет приложения тестировать, установленный на device) Проверяет ссылки на ресурсы в файле Android XML
Очевидно, что я чего-то не хватает. Как я обрабатываю APK для тестирования при тестировании черного ящика? Как мне дать ссылку на то, что тестировать на Robotium?
любое обновление для этого? Любое рабочее решение? – codevscolor