Robolectric:actionBar.hide()返回null(Robolectric: ac

2019-10-19 01:19发布

我是新来的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,但它并没有解决。

谢谢。

Answer 1:

作为@ersentekin和我的意见制定出来的,这里是一个要点是需要@西安的要点有一个建议从marsucsb并修改它Robolectric工作2.2+



Answer 2:

具有u加入了android:主题的AndroidManifest.xml

<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:debuggable="false" android:theme="@style/Theme.Sherlock">


文章来源: Robolectric: actionBar.hide() returns Null