[英]Unit test with Robolectric.buildAttributeSet() results in NullPointerException
[英]Getting NullPointerException Using Robolectric to Unit Test Android Activity
我正在開發帶有幾個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錯誤,並且測試不會運行。 有什么想法或您想檢查的其他代碼嗎?
最新版本的Robolectric未實現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 ()
順便說一句,不建議使用getActionBar()
。 而是使用包含更新操作欄的Android-AppCompat-v7。 您可以使用getSupportActionBar()
獲取它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.