アプリでワークフローを実行するテストを作成しようとしています。でも; テストを 2 つの部分に分割する必要があります。シナリオは次のようになります。
アプリを起動すると、ギャラリーが起動して画像が選択され、アプリに戻ってワークフローが続行されます。
私が抱えている問題は、ギャラリーでのアクションを自動化できないことです。そのため、これには手動のアクションが必要です。したがって、私の計画は、最初の部分を自動化することです。つまり、アプリを起動してギャラリーを開始し、手動で画像を選択してから、自動テストの 2 番目の部分を実行します。
問題は、tearDown ステップを実行せずに activity.finish() を呼び出しても、最初の自動化部分の最後でアクティビティが閉じられることです。
私が使用しているコードの例を含めました。ここで私が間違っていることを指摘できれば、それは素晴らしいことです。自動化にRobotiumを使用していることに言及する必要があります。
package com.myapp.android.testWithAPK;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
public class MyTest extends ActivityInstrumentationTestCase2 {
private static final String TARGET_PACKAGE_ID = "com.myapp.android";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =
"com.myapp.android.ui.Main";
private static Class<?> launcherActivityClass;
static {
try {
launcherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public MyTest() throws ClassNotFoundException {
super(launcherActivityClass);
}
private Solo solo;
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation());
}
public void testCreatePostCard() throws InterruptedException{
solo.clickOnText("Make a postcard");
solo.clickOnText("Choose photo");