簡體   English   中英

使用Robolectric獲取NullPointerException對Android活動進行單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM