как организовать класс в проекте robotium? - PullRequest
2 голосов
/ 02 июня 2011

У меня есть действие A, которое запускает действие B.

Мне бы хотелось иметь проект robotium для тестирования моего приложения, поэтому я создал первый тестовый класс для действия A, и все прошло хорошо.

Я бы хотел сейчас создать еще один тестовый класс для тестирования Деятельности B, но он требует некоторого инициализации из Деяния А.

Я попробовал это:

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]
}

Я получилNullPointerException, когда testA выполняет getActivity ()

1 Ответ

1 голос
/ 27 июля 2012

Я делаю это так:

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");

    }


}
...