如何在robotium项目中组织课堂



我有一个启动活动B的活动A。

我想有一个robotium项目来测试我的应用程序,所以我为活动a创建了第一个测试类,一切都很顺利。

我现在想创建另一个测试类来测试活动B,但它需要来自活动A的一些init。

我试过这个:

BTestClass extends ActivityInstrumentationTestCase2 {
    private Solo solo;
private ATestClass testA;
    @Override
    protected void setUp() throws Exception {
        Log.i(TAG, "setUp");
        solo = new Solo(getInstrumentation(), getActivity());
        testA = new ATestClass();
        testA.setUp();
        testA.testAddAccount();
        solo.clickInList(0);
    }
    [… more test method]
}

当testA执行getActivity()时,我得到了一个NullPointerException

我是这样做的:

public class BTest extends ActivityInstrumentationTestCase2<SplashScreenActivity> {
    protected static final String TARGET_PACKAGE_ID = "app.under.test";
    protected Solo solo;
    public BTest() {
        super(TARGET_PACKAGE_ID, StartingActivity.class);
    }
    @Override
    public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation(), getActivity());
        // setup stuff

    }
    @Override
    public void tearDown() throws Exception {
        // teardown stuff

        super.tearDown();
    }
}

所有测试用例都只是从BTest然后从继承

public class OneTest extends BTest {
    public void test_OneTest() {
        //test stuff
        solo.clickOnButton("Ok");
    }

}

最新更新