android - Robolectric:actionBar.hide() 返回 Null

标签 android junit android-actionbar actionbarsherlock robolectric

我是 Android 单元测试的新手,我使用 Robolectric 作为测试框架。我使用 Robolectric 2.2。

我正在尝试测试这样的 Activity :

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)

这一行指的是 绝对隐藏();

注意:我试过 Xian's Gist但它没有用。

我还尝试创建类似 this 的 ShadowSherlockActivity但我不知道如何使用这个影子类来创建如下 Activity :

activity = Robolectric.buildActivity(LoginActivity.class).create().get();

注意 2:我尝试使用 Robolectric Snapshot 2.3 但没有解决。

谢谢。

最佳答案

正如@ersentekin 和我在评论中所做的那样,这里是一个 Gist这需要@Xian 的 Gist来自 marsucsb 的建议并对其进行修改以与 Robolectric 2.2+ 一起使用

关于android - Robolectric:actionBar.hide() 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262336/

相关文章:

java - Mockito 验证未失败

java - 由 : org. springframework.beans.factory.UnsatisfiedDependencyException 引起:创建名称为 'myAppDao' 的 bean 时出错:

java - Android操作栏样式生成器: Change text color of action bar

android - React Native Expo StackNavigator 与通知栏重叠

android - 在android中启动 Activity 会打开新 Activity Kotlin的多个实例

java - gradle 和 junit 间歇性并发故障

android - actionbar 中的水平进度条宽度

android - 离线语音识别错误 ERROR_RECOGNIZER_BUSY

java - FindViewById 在类类型 Service 中?

android - 在 Android ActionBar 上设置导航图标