我有一个活动A,它启动了一个活动B.
我想要一个机器人项目来测试我的应用程序,所以我为活动A创建了第一个测试类,一切顺利。
我现在想要为测试活动B创建另一个测试类,但它需要来自活动A的一些初始化。
我试过了:
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答案 0 :(得分: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();
}
}
所有测试用例都从BReast继承
public class OneTest extends BTest {
public void test_OneTest() {
//test stuff
solo.clickOnButton("Ok");
}
}