我有一个启动活动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");
}
}