0

ブラックボックステスト環境では、Android JUnit Testを実行してテストを実行するためにCODE1を含め、CODE 2で終了する必要があります(Robotiumサイトから説明されています

コード1:

public class ConnectApp extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.example.android.notepad.NotesList";
private static Class<?> launcherActivityClass;
private Solo solo;
static { 
    try { launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); }
    catch (ClassNotFoundException e) { throw new RuntimeException(e); }
}
public ConnectApp() throws ClassNotFoundException {
    super(launcherActivityClass);
}
public void setUp() throws Exception {
    this.solo = new Solo(getInstrumentation(), getActivity());
}

コード2:

public void testNumberOne() { … }
public void testNumberTwo() { … }

}

ただし、コードのCODE 1 getInstrumentation()とgetAcitvity()を含む)を抽象化して、別のテストファイルでそれらを呼び出してからCODE2を実行できるようにします。これは、別々のファイルでテストを行い、同じ量のCODE 1コードを追加し続けたくないので、メソッド/コンストラクターを呼び出してプロセスを開始するためです。

これを行う方法はありますか?前もって感謝します。

4

1 に答える 1

2

はい、これを行う方法があります。次のような空のテスト クラスを作成する必要があります。

public class TestTemplate extends ActivityInstrumentationTestCase2 {

    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.example.android.notepad.NotesList";
    private static Class<?> launcherActivityClass;
    private Solo solo;

    static { 
        try { launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); }
        catch (ClassNotFoundException e) { throw new RuntimeException(e); }
    }
    public ConnectApp() throws ClassNotFoundException {
        super(launcherActivityClass);
    }

    public void setUp() throws Exception {
        super.setUp();//I added this line in, you need it otherwise things might go wrong
        this.solo = new Solo(getInstrumentation(), getActivity());
    }

    public Solo getSolo(){
        return solo;
    }
}

次に、ActivityInstrumentationTestCase2 を拡張する代わりに、将来必要なすべてのテスト クラスに対して、TestTemplate を拡張します。

例えば:

public class ActualTest extends TestTemplate {
    public ActualTest() throws ClassNotFoundException {
    super();
}

    public void setUp() throws Exception {
        super.setUp();
        //anything specific to setting up for this test
    }

    public void testNumberOne() { … }
    public void testNumberTwo() { … }
}
于 2012-11-06T13:55:55.583 に答える