startActivity在Android单元测试中不起作用

时间:2016-01-12 23:36:30

标签: android sqlite unit-testing android-activity junit

我已经尝试了一切。 startActivity没有收到意图。这是代码:

public class ColaboradorTeste extends ActivityUnitTestCase<ColaboradorMainActivity> {

    private UserDAO userDAO;
    private ColaboradorMainActivity activity;

    public ColaboradorTeste() {
        super(ColaboradorMainActivity.class);
    }

    @Override
    protected void setUp() throws Exception{
        super.setUp();

        startActivity(new Intent(getInstrumentation().getTargetContext(), ColaboradorMainActivity.class), null, null);

        activity = (ColaboradorMainActivity)getActivity().getApplicationContext();
        userDAO = new UserDAO(activity);
    }

    public void testBase() throws Exception{
     ...
    }
}

这是错误:

java.lang.NullPointerException
    at br.fsw.seatafmobile.ColaboradorTeste.setUp(ColaboradorTeste.java:23)

我知道问题出在startActivity中,但我真的不知道如何解决它。 如果有人可以提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案! 我的测试是使用在应用程序上创建的数据库。所以我不得不将Build Variants从Unit Test更改为Android Instrumentation Tests。