例如,我有两个活动MainActivity和NextStartedActivity。
MainActivity中的onCreate()方法
...
Intent intent = (new Intent(this, NextStartedActivity.class).putExtra("start", 1));
startActivity(intent);
对于MainActivity,此调用正常
activity = Robolectric.buildActivity(MainActivity.class).create().visible().get();
NextStartedActivity中的onCreate()
...
request_status = getIntent().getExtras().getInt("start");
textureView.setSurfaceTextureListener(this);
...
当我对NextStartedActivity使用上面的调用时,我有
java.lang.NullPointerException at NextStartedActivityTest.java:89
但是当我使用
activity = Robolectric.buildActivity(NextStartedActivity.class).get();
一切正常。
请让我理解这种方式与不同活动的不同之处。这是否等于setupActivity()?
答案 0 :(得分:0)
如果NPE正在这条线上发生:
request_status = getIntent().getExtras().getInt("start");
然后问题是你没有在你的代码期望的测试中创建一个意图。尝试这样的事情:
Intent intent = new Intent(Robolectric.getShadowApplication().getApplicationContext(),
NextStartedActivity.class);
intent.putExtra("start", 1);
Robolectric.buildActivity(NextStartedActivity.class).withIntent(intent).create().get();