我正在开发一个包含多个Activity类的Android应用。我正在使用Robolectric进行单元测试。在测试设置中,我在被测试的Activity中调用onCreate(null):
@Before
public void setUp() throws Exception {
activity = new StartARound();
activity.onCreate(null);
btnSelectCourse = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnSelectCourse);
btnAddACourse = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnAddACourse);
btnShowLocation = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnShowLocation);
textView1 = (TextView) activity.findViewById(com.catalyst.golfapp.R.id.textView1);
}
问题是,我正在测试的Activity的onCreate方法调用:
getActionBar().setDisplayHomeAsUpEnabled(true);
执行此行代码会产生java.lang.NullPointerException错误,并且测试不会运行。您想要检查的任何想法或其他代码?
答案 0 :(得分:0)
getActionBar()
。
这是ShadowActivity的源文件: https://github.com/pivotal/robolectric/blob/master/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivity.java
此API可用于查看何时使用robolectric中不存在的函数: http://pivotal.github.com/robolectric/javadoc/com/xtremelabs/robolectric/Robolectric.html#logMissingInvokedShadowMethods()
答案 1 :(得分:0)
顺便说一句,建议不要使用getActionBar()
。而是使用包含较新操作栏的Android-AppCompat-v7。您可以使用getSupportActionBar()