如何在机器人项目中组织课程?

发布于 2024-11-11 13:52:16 字数 642 浏览 4 评论 0原文

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

我想要一个 robotsium 项目来测试我的应用程序,因此我为活动 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

I have an activity A that launch an activity B.

I'd like to have a robotium project to test my app so I'v created a first test class for activity A and all goes well.

I'd like now to create another test class for testing Activity B but it require some init from activity A.

I tried this:

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

I got a NullPointerException when testA is doing getActivity()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老子叫无熙 2024-11-18 13:52:16

我这样做:

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

    }


}

I do it this way:

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();
    }

}

All testcases just inherit from BTest then

public class OneTest extends BTest {

    public void test_OneTest() {

        //test stuff
        solo.clickOnButton("Ok");

    }


}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文