Как организовать класс в проекте robotium?
У меня есть действие A, которое запускает действие B.
Я хотел бы иметь проект robotium для тестирования моего приложения, поэтому я создал первый тестовый класс для упражнения А, и все идет хорошо.
Я хотел бы сейчас создать еще один тестовый класс для тестирования Деятельности 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 ответ
Я делаю это так:
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");
}
}