我是新来的Android单元测试和我使用Robolectric作为一个测试框架。 我用Robolectric 2.2。
我想测试一个活动是这样的:
public class LoginActivity extends SherlockActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ActionBar abs = getSupportActionBar();
abs.hide();
}
这是我的测试类:
@RunWith(RobolectricTestRunner.class)
public class LoginActivityTest {
@Before
public void setUp() throws Exception
{
System.setProperty("dexmaker.dexcache", "/sdcard");
activity = Robolectric.buildActivity(LoginActivity.class).create().get();
}
@Test
public void should_loginActivity_created() throws Exception {
assertNotNull(activity);
}
我得到这个错误:
java.lang.NullPointerException
at auth.LoginActivity.onCreate(LoginActivity.java:119)
这条线是指abs.hide();
注:我想西安的要点 ,并没有奏效。
我也尝试创建ShadowSherlockActivity像这样 ,但我不知道如何使用这个阴影类如创建活动:
activity = Robolectric.buildActivity(LoginActivity.class).create().get();
注2:我尝试使用Robolectric快照2.3,但它并没有解决。
谢谢。