我有一项活动可以从临时演员中获得一个 pojo,如下所示:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if (extras != null)
{
MyPojo pojo = extras.getParcelable("pojo");
// do stuff with my pojo here
}
}
// button that shows a toast message
}
我很难使用 Robolectric 对此进行测试,我相信我需要结合使用 ShadowIntents 和 ShadowActivities,但是文档有点薄,关于这个特定场景的任何有用的教程都相当稀少。
到目前为止,这是我想出的:
@Test
public void assertClickingTagSightingDisplaysToast()
{
myActivity = new MyActivity();
myActivity.onCreate(null);
ShadowActivity shadowMyActivity = shadowOf(myActivity);
shadowMyActivity.setIntent(new Intent().putExtra("pojo", generateAPojo()));
ShadowButton shadowButton = (ShadowButton) shadowOf(shadowMyActivity.findViewById(R.id.myButton));
shadowButton.performClick();
assertThat(ShadowToast.getTextOfLatestToast(), equalTo("Button was clicked!"));
}
当我执行这些测试时,我不断收到一个空指针,在getIntent().getExtras()
我的活动行中,我假设我用意图模拟活动的过程是不正确的。
有人可以帮忙吗?
谢谢